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打开新窗口同时关闭旧窗口
Jan 16 Javascript
js 判断checkbox是否选中的实现代码
Nov 23 Javascript
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
jquery validate表单验证插件
Sep 06 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
Dec 08 Javascript
Angularjs自定义指令实现分页插件(DEMO)
Sep 16 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
JS创建自定义对象的六种方法总结
Dec 15 Javascript
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
原生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 开源框架22个简单简介
2009/08/24 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
深入理解PHP中的count函数
2016/05/31 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
学习ExtJS fit布局使用说明
2009/10/08 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
详解Python中的strftime()方法的使用
2015/05/22 Python
Python执行时间的计算方法小结
2017/03/17 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Django密码系统实现过程详解
2019/07/19 Python
python实现的config文件读写功能示例
2019/09/24 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
戴尔英国官网:Dell英国
2017/05/27 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
精伦电子Java笔试题
2013/01/16 面试题
高中生自我鉴定范文
2013/10/30 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
学历公证书范本
2014/04/09 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
oracle数据库去除重复数据
2022/05/20 Oracle