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 THICKBOX弹出层插件
Aug 30 Javascript
javascript 获取select下拉列表值的代码
Sep 07 Javascript
js不能跳转到上一页面的问题解决方法
Mar 01 Javascript
jquery选择器大全 全面详解jquery选择器
Mar 06 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
Mar 13 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
深入理解Vue nextTick 机制
Apr 28 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
JavaScript中展开运算符及应用的实例代码
Jan 14 Javascript
vue实现水波涟漪效果的点击反馈指令
May 31 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
各种战术和打法的原创者
2020/03/04 星际争霸
Php部分常见问题总结
2006/10/09 PHP
php 过滤危险html代码
2009/06/29 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
Python实现的彩票机选器实例
2015/06/17 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
教师的实习自我鉴定
2013/12/17 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript
python实现简单石头剪刀布游戏
2021/10/24 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL