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借助ActiveXObject实现创建文件
Sep 29 Javascript
javascript和jquery修改a标签的href属性
Dec 16 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
js实现数组去重方法及效率?Ρ? target=
Feb 14 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
vue data恢复初始化数据的实现方法
Oct 31 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 Javascript
js动态生成表格(节点操作)
Jan 12 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生成WAP页面
2006/10/09 PHP
php 小乘法表实现代码
2009/07/16 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
jQuery chili图片远处放大插件
2009/11/30 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
编写简单的Python程序来判断文本的语种
2015/04/07 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
理解python中生成器用法
2017/12/20 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
python 5个顶级异步框架推荐
2020/09/09 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
自我评价如何写好?
2014/01/05 职场文书
岗位职责怎么写
2014/03/14 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书