页面内锚点定位及跳转方法总结(推荐)


Posted in Javascript onApril 24, 2019

接着上一篇,其实是一个功能,本来感觉挺简单的一个问题,没想到遇到两个坎儿,无语。。。

上一篇是关于scroll事件绑定的问题,这一篇的问题是:点击锚点跳转到相应DIV的问题。

最简单的方法是锚点用<a>标签,在href属性中写入DIV的id。如下:

<!DOCTYPE html>
<html>
<head>
  <style>
    div {
      height: 800px;
      width: 400px;
      border: 2px solid black;
    }
    h2 {
      position: fixed;
      margin:50px 500px;
    }
  </style>
</head>
<body>
  <h2>
    <a href="#div1" rel="external nofollow" >to div1</a>
    <a href="#div2" rel="external nofollow" >to div2</a>
    <a href="#div3" rel="external nofollow" >to div3</a>
  </h2>
  <div id="div1">div1</div>
  <div id="div2">div2</div>
  <div id="div3">div3</div>
</body>
</html>

这种方法的缺点是点击锚点之后,浏览器的URL会发生变化,如果刷新可能会出现问题。 

第二种方式是在js事件中通过window.location.hash="divId"跳转,但地址也会发生变化,感觉跟第一种方法没区别,甚至更麻烦。

第三种方法是用animate属性,当点击锚点后,页面滚动到相应的DIV。接着上面的代码,具体添加如下代码:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript"><br>$(document).ready(function() {
  $("#div1Link").click(function() {
    $("html, body").animate({
      scrollTop: $("#div1").offset().top }, {duration: 500,easing: "swing"});
    return false;
  });
  $("#div2Link").click(function() {
    $("html, body").animate({
      scrollTop: $("#div2").offset().top }, {duration: 500,easing: "swing"});
    return false;
  });
  $("#div3Link").click(function() {
    $("html, body").animate({
      scrollTop: $("#div3").offset().top }, {duration: 500,easing: "swing"});
    return false;
  });
});
1
</script>

注意:运行上面的脚本的之前,先将为锚点增加相应的id,同时去掉href属性。

 

$("html, body")可以替换为响应的div,如果不起作用,试着给该div增加overflow:scroll属性。

另外,脚本可以进一步优化,自己来试试

这样做的好处是:URL地址不会变,同时点击锚点时会自动响应scroll事件,不需要重新绑定。

缺点是:如果页面复杂的话,偏移值可能会发生变化需要算法辅助。

第四种方法是用js的srollIntoView方法,直接用:

document.getElementById("divId").scrollIntoView();

这种方法的好处,是URL不会变,同时能够响应相应的scroll事件,不需要算法什么的。

推介大家用第四种,我依次试了前三种,都有各种问题(可能是页面较复杂的缘故吧,当然,技术不咋也是。。。)  

以上所述是小编给大家介绍的页面内锚点定位及跳转方法总结详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 在各个浏览器中执行的耐性
Apr 06 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
Jan 13 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
简单谈谈Javascript中类型的判断
Oct 19 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
canvas 实现中国象棋
Feb 17 Javascript
Vue封装的组件全局注册并引用
Jul 24 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
vue css 相对路径导入问题级踩坑记录
Jun 05 Vue.js
详解Vue项目中实现锚点定位
Apr 24 #Javascript
微信小程序中使用echarts的实现方法
Apr 24 #Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 #Javascript
详解微信小程序开发用户授权登陆
Apr 24 #Javascript
微信小程序实现的一键拨号功能示例
Apr 24 #Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 #Javascript
微信小程序实现的图片保存功能示例
Apr 24 #Javascript
You might like
php 正则匹配函数体
2009/08/25 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python复制文件代码实现
2013/12/23 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python opencv如何实现图片绘制
2020/01/19 Python
终于搞懂了Keras中multiloss的对应关系介绍
2020/06/22 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
大学生饮食连锁店创业计划书
2014/01/17 职场文书
安全生产先进个人材料
2014/02/06 职场文书
承诺书怎么写
2014/03/26 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
门面房租房协议书
2014/08/20 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2014年终工作总结范本
2014/12/15 职场文书
运动会运动员赞词
2015/07/22 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server