JavaScript控制网页平滑滚动到指定元素位置的方法


Posted in Javascript onApril 17, 2015

本文实例讲述了JavaScript控制网页平滑滚动到指定元素位置的方法。分享给大家供大家参考。具体如下:

function elementPosition(obj) {
  var curleft = 0, curtop = 0;
  if (obj.offsetParent) {
   curleft = obj.offsetLeft;
   curtop = obj.offsetTop;
   while (obj = obj.offsetParent) {
    curleft += obj.offsetLeft;
    curtop += obj.offsetTop;
   }
  }
  return { x: curleft, y: curtop };
}
function ScrollToControl(id)
{
 var elem = document.getElementById(id);
 var scrollPos = elementPosition(elem).y;
 scrollPos = scrollPos - document.documentElement.scrollTop;
 var remainder = scrollPos % 50;
 var repeatTimes = (scrollPos - remainder) / 50;
 ScrollSmoothly(scrollPos,repeatTimes);
 window.scrollBy(0,remainder);
}
var repeatCount = 0;
var cTimeout;
var timeoutIntervals = new Array();
var timeoutIntervalSpeed;
function ScrollSmoothly(scrollPos,repeatTimes)
{
 if(repeatCount < repeatTimes)
 {
 window.scrollBy(0,50);
 }
 else
 {
 repeatCount = 0;
 clearTimeout(cTimeout);
 return;
 }
repeatCount++;
cTimeout = setTimeout("ScrollSmoothly('"+scrollPos+"','"+repeatTimes+"')",10);
}

使用方法:

ScrollToControl('elementID');

页面将会平滑的滚动到元素elementID所在的位置

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
js 利用className得到对象的实现代码
Nov 15 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
Sep 14 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
详解jQuery插件开发中的extend方法
Nov 19 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
原生js实现可拖动的登录框效果
Jan 21 Javascript
Bootstrap table使用方法总结
May 10 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
jquery实现下载图片功能
Jul 18 jQuery
原生js实现移动开发轮播图、相册滑动特效
Apr 17 #Javascript
JavaScript实现简单图片翻转的方法
Apr 17 #Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 #Javascript
JavaScript实现的简单幂函数实例
Apr 17 #Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 #Javascript
jQuery中toggle()函数的使用实例
Apr 17 #Javascript
JQuery实现可直接编辑的表格
Apr 16 #Javascript
You might like
关于php几种字符串连接的效率比较(详解)
2017/02/22 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
nodejs入门教程四:URL相关模块用法分析
2017/04/24 NodeJs
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
Python深入06——python的内存管理详解
2016/12/07 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python实现自动发送邮件功能
2021/03/02 Python
对python函数签名的方法详解
2019/01/22 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
外贸采购员求职的自我评价
2013/11/26 职场文书
工程造价专业求职信
2014/07/17 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL