JavaScript控制网页平滑滚动到指定元素位置的方法


本文实例讲述了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程序设计有所帮助。



相关阅读:
jQuery使用中可能被XSS攻击的一些危险环节提醒
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
json格式的javascript对象用法分析
jquery如何根据值设置默认的选中项
html文档中的location对象属性理解及常见的用法
JSP获取服务器时间以倒计时的形式在页面显示
绝对定位元素被遮挡的解决方法
深入探讨Java多线程中的volatile变量
mysql found_row()使用详解
sqlserver中获取date类的年月日语句
使用canvas绘制超炫时钟
在Linux系统上进行openmp多线程编程的方法
php-redis中的sort排序函数总结
常用C/C++预处理指令详解
快速导航

Copyright © 2016 phpStudy |