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 相关文章推荐
JavaScript 指导方针
Apr 05 Javascript
基于JQuery框架的AJAX实例代码
Nov 03 Javascript
9个JavaScript评级/投票插件
Jan 18 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
Sep 04 Javascript
简单方法判断JavaScript对象为null或者属性为空
Sep 26 Javascript
深入浅析JavaScript面向对象和原型函数
Feb 06 Javascript
基于jquery实现即时检查格式是否正确的表单
May 06 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
Apr 08 Javascript
原生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 checkbox 取值详细说明
2010/08/19 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php的dl函数用法实例
2014/11/06 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python中常见的数据类型小结
2015/08/29 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
Python循环实现n的全排列功能
2019/09/16 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
JAVA代码查错题
2014/10/10 面试题
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
大学本科毕业生的自我鉴定
2013/11/26 职场文书
和解协议书
2014/04/16 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
通讯稿范文
2015/07/22 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
nginx安装以及配置的详细过程记录
2021/09/15 Servers