body选择器在firefox上不起作用

时间:2013-09-10 01:33:56

标签: jquery html css selector

我有一段代码在您悬停元素时滚动页面。发生了一件奇怪的事情,它只适用于某些浏览器,具体取决于此行中的选择器:var div = $('body'); 在这种情况下使用body适用于Chrome但不适用于FF。但是,将body替换为html适用于FF但不适用于Chrome。

$(document).ready(function () {
    var speed = 10,
        timer;
    $("#hoverscroll").hover(function () {
        $(this).css({cursor: 'none'});
        $(this).css({opacity: '0'});
        var div = $('body');
        (function startscrolling(){
            timer = setTimeout(function () {
                var pos = div.scrollTop();
                div.scrollTop(pos + 1);
                startscrolling();
            }, speed);
        })();
    },

    function () {
        $("#hoverscroll").css({opacity: '1'});
        clearTimeout(timer);
        speed = 10;
    })
    .click(function(){
    });
});

1 个答案:

答案 0 :(得分:1)

您应该使用var div = $(window);

您可以$(window).scrollTop();因为页面上的滚动条是窗口的一部分,而不是正文或HTML。

但是,如果元素具有overflow,则它是HTML元素的一部分。这在不同的浏览器中有所不同。但是,如果您正在滚动文档窗口,则可以使用兼容crossbrowser的$(window).scrollTop();