我有一段代码在您悬停元素时滚动页面。发生了一件奇怪的事情,它只适用于某些浏览器,具体取决于此行中的选择器: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(){
});
});
答案 0 :(得分:1)
您应该使用var div = $(window);
您可以$(window).scrollTop();
因为页面上的滚动条是窗口的一部分,而不是正文或HTML。
但是,如果元素具有overflow
,则它是HTML元素的一部分。这在不同的浏览器中有所不同。但是,如果您正在滚动文档窗口,则可以使用兼容crossbrowser的$(window).scrollTop();
。