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


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 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
JavaScript学习笔记之获取当前目录的实现代码
Dec 14 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
javascript实现查找数组中最大值方法汇总
Feb 13 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 Javascript
详解vue mixins和extends的巧妙用法
Dec 20 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
js实现树形数据转成扁平数据的方法示例
Feb 27 Javascript
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
如何理解Vue简单状态管理之store模式
May 15 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
mysql 性能的检查和优化方法
2009/06/21 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
详解python读取image
2019/04/03 Python
python树的同构学习笔记
2019/09/14 Python
python队列原理及实现方法示例
2019/11/27 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
函授自我鉴定范文
2014/02/06 职场文书
自荐书范文范例
2014/02/13 职场文书
教师年度考核评语
2014/04/28 职场文书
冬季安全检查方案
2014/05/23 职场文书
商场收银员岗位职责
2015/04/07 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python