scrollTop兼容处理

使用jQuery2.0以下版本的scrollTop()函数来设置当然兼容性当然很好,但有时需要为滚动设置滑动效果。比如,使用animate函数,这里需要做些兼容性处理:

实例:http://sandbox.runjs.cn/show/pji9exa3

代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <script src="http://sandbox.runjs.cn/uploads/rs/294/c4c2o6mh/jquery.js"></script>
</head>
<body style="height: 1000px;">
    <input type="button" value="使用jQuery的scrollTop()" id="sr" />
    <input type="button" value="使用animate()加入动画" id="sc" />
    <input type="button" value="使用css()来设置" id="st" />
    <script type="text/javascript">
        //设定滚动条与顶部的距离兼容处理
        var getScrollObj = function(){
            var obj = null;
            if (navigator.userAgent.indexOf(‘Firefox‘) >= 0 || navigator.userAgent.indexOf(‘MSIE‘)>=0 )//firefox特殊处理,木有动画效果
                obj = $(document.documentElement);
            else
                obj = $(‘body‘);
            return obj;
        };

        $(‘#sr‘).click(function(){
            getScrollObj().scrollTop(100);
        });
        $(‘#sc‘).click(function(){
            getScrollObj().animate({‘scrollTop‘: ‘300px‘},1000);
        });
    </script>
</body>
</html>
时间: 2024-11-13 09:45:59

scrollTop兼容处理的相关文章

document.body.scrollTop与document.documentElement.scrollTop兼容

项目中遇到这个小问题,看到有前辈总结,借来用一下 document.body.scrollTop与document.documentElement.scrollTop兼容 这两天在写一个JS的网页右键菜单,在实现菜单定位的时候发现了这个问题:chrome居然不认识document.documentElement.scrollTop! 看前辈们的文章,纷纷表示如果有文档声明(即网页第一句的docType)的情况下,标准浏览器是只认识documentElement.scrollTop的,但chrom

获取scrollTop兼容各浏览器的方法,以及body和documentElement

1.各浏览器下 scrollTop的差异 IE6/7/8: 对于没有doctype声明的页面里可以使用  document.body.scrollTop 来获取 scrollTop高度 : 对于有doctype声明的页面则可以使用 document.documentElement.scrollTop: Safari: safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset : Firefox: 火狐等等相对标准些的浏览器就省心多了,直接用 docum

onsrcoll和scrollTop兼容与实现

对于onscroll事件的支持 各浏览器 document.document.body.document.documentElement 对象的 onscroll 事件的支持存在差异. 所谓的支持性存在差异就是我们常说的浏览器兼容性问题,就是说,对于不同浏览器可能不会按照预期触发相应的事件处理函数.   IE6 IE7 IE8 Firfox Chrome Safari Opera   Q S Q S Q S Q S Q S Q S Q S window 对象 Y Y Y Y Y Y Y Y Y

获取当前scrollTop和scrollLeft,兼容XHTML

1 // JavaScript Document 2 /* 用法与测试: 3 var myScroll = getScroll(); 4 alert("myScroll.scrollTop:" + myScroll.scrollTop); 5 alert("myScroll.scrollLeft:" + myScroll.scrollLeft); 6 */ 7 function getScroll(){ 8 var scrollTop,scrollLeft; 9 s

js图片懒加载

<script type="text/javascript"> var lazyLoad = { // 获取元素到页面顶部的距离 getoffsetTop: function(elem){ var offTop = 0; while(elem != null){ offTop += elem.offsetTop; // 获取元素到其上一级元素顶部的距离 elem = elem.offsetParent; // 元素的上一级元素 } return offTop; }, //

js实现上下滑动侧边栏

给一个原先的电子商务网站做修改,客户说想将原先上下滑动侧边栏改的更加人性化,希望将原先匀速滑动的侧边栏改成变速运动的侧边栏,在到达目的地之前速度越变越慢. 原先一开始的时候,,这个图片是硬生生地到达可视区的中点,看得有点愣愣傻傻的. 原先的代码是这样: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transit

常用数组、字符串方法总结&amp;获取元素、DOM操作

字符串的方法.返回值.是否改变原字符串:1 charAt() 方法可返回指定位置的字符. 不改变原始字符串 JavaScript并没有一种有别于字符串类型的字符数据类型,返回的字符是长度为 1 的字符串: 注释:字符串中第一个字符的下标是 0.如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串. 2 concat() 方法用于连接两个或多个字符串并返回连接后的字符串 不改变原始字符串 语法:stringObject.concat(stringX,str

DOM,BOM

1.DOM:文档对象模型(Document Object Model) 1)子节点:只是这一代的后代,不会计算后代的后代  1.childNodes:获取子节点,    --IE6-8:获取的是元素节点,正常    --高版本浏览器:但是会包含文本节点和元素节点(不正常) 2.nodeType:节点的类型    --nodeType=3-->文本节点    --nodeTyPE=1-->元素节点    所以获取元素节点兼容的方法:      for(var i=0;i<oUL.child

浏览器兼容性-JS篇

总结一下平时遇到的浏览器兼容性问题,本篇关于JS. 1.事件绑定 兼容写法: 1 function add(obj,event){ 2 if (obj.addEventListener) { 3 obj.addEventListener(event,fn,fase); 4 }else{ 5 obj.attachEvent("on"+event,fn); 6 } 7 } 小结:addEventListener()兼容firefox.chrome.safari.opera.IE9+ att