JQuery scrollTop - 跨浏览器兼容性问题

时间:2016-02-10 14:05:14

标签: javascript jquery html css scroll

昨天我遇到了一个问题,一个JQuery滚动脚本在Chrome中运行但在IE和Firefox中没有。昨天我问了这个查询(JQuery scroll() / scrollTop() not working in IE or Firefox),我将其标记为正确的答案,只是意识到它不再适用于Chrome了!

任何人都可以帮助我在所有现代浏览器上使用它吗?

HTML

<div id="dotted-line">
    <div id="up-arrow">^up</div>
</div>

JQuery的

//get window size values (cross browser compatible)
(function(undefined) {
    var container = $("html,body");
    $.windowScrollTop = function(newval) {
        if( newval === undefined) {
            return container.scrollTop();
        }
        else {
            return container.scrollTop(newval);
        }
    }
})();

//draw dotted line on scroll    
$(window).scroll(function(){

    if ($.windowScrollTop() > 10) {
        var pos = $.windowScrollTop();
        $('#dashes').css('height',pos/4);
        $('#footer-dot').css('top',pos/4);
    } else {
        $('#dashes').css('height','6px');
        $('#footer-dot').css('top','-150px');
    }
});

2 个答案:

答案 0 :(得分:1)

  

scrollTop()将仅返回set中第一个匹配元素的值   $('html,body'),这就是为什么它不再适用于chrome

我认为你最好的选择是使用:

var container = $(document.scrollingElement || "html");

答案 1 :(得分:0)

使用jQuery migrate插件:允许您为不同的浏览器设置不同的配置!

http://code.jquery.com/jquery-migrate-1.1.1.js

希望这能解决你的问题。