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去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
Nov 19 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
jQuery实现的淡入淡出二级菜单效果代码
Sep 15 Javascript
bootstrap实现弹窗和拖动效果
Jan 03 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
May 12 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
JavaScript 五大常见函数
Mar 23 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
JS实现手写 forEach算法示例
Apr 29 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/09/23 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
python入门前的第一课 python怎样入门
2018/03/06 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
优秀教师获奖感言
2014/01/31 职场文书
《中华少年》教学反思
2014/02/15 职场文书
园林技术专业求职信
2014/07/28 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
学习党章的体会
2014/11/07 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
检讨书怎么写?
2019/06/21 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis