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 相关文章推荐
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
Nov 12 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
Oct 27 Javascript
原生JS实现京东查看商品点击放大
Dec 21 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下对字符串的递增运算代码
2010/08/21 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
node.js入门教程
2014/06/01 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python使用Django实现博客系统完整版
2020/09/29 Python
基于Python List的赋值方法
2018/06/23 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
执行总经理岗位职责
2014/02/03 职场文书
家长学校工作方案
2014/05/07 职场文书
党员政治学习材料
2014/05/14 职场文书
学校校庆演讲稿
2014/05/22 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
防火标语大全
2014/10/06 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
英镑符号 £
2022/02/17 杂记
图神经网络GNN算法
2022/05/11 Python