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文件的代码
Jul 18 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
广泛收集的jQuery拖放插件集合
Apr 09 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
Oct 09 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 Javascript
深入理解js数组的sort排序
May 28 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
基于JavaScript实现五子棋游戏
Aug 26 Javascript
SVG实现时钟效果
Jul 17 Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 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 htmlentities()函数的定义和用法
2016/05/13 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
js微信支付实现代码
2016/12/22 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
python搭建微信公众平台
2016/02/09 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
详解Python传入参数的几种方法
2019/05/16 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
python中类与对象之间的关系详解
2020/12/16 Python
python中pivot()函数基础知识点
2021/01/03 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
报社实习生自荐信
2014/01/24 职场文书
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
《手指教学》反思
2014/02/14 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
2014年班级工作总结
2014/11/14 职场文书
四年级小学生评语
2014/12/26 职场文书
企业员工辞职信范文
2015/05/12 职场文书
开国大典观后感
2015/06/04 职场文书
聘用合同范本
2015/09/21 职场文书
Python基础之Socket通信原理
2021/04/22 Python
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
redis数据结构之压缩列表
2022/03/21 Redis
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js