我有一个在页面底部到达时向上/向下滑动的页脚,问题是在IE8中由于某种原因被调用了两次。
我可以强制每页滚动一次吗?
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
// $('.footer .open').click();
$('#page-footer').slideToggle();
console.log('log');
}
});
答案 0 :(得分:0)
试试这个我希望能帮到你
$(window).unbind('scroll').scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
// $('.footer .open').click();
$('#page-footer').slideToggle();
console.log('log');
}
});
答案 1 :(得分:0)
我认为这是因为当你滑动时,由于动画,窗口会再次滚动。你可以在页脚中添加一个类,当你滑动时,你可以检查它是否有那个类,它不应该是slideToggle,因为它已经完成了。
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height() && !$('#page-footer').hasClass('do-once')) {
// $('.footer .open').click();
$('#page-footer').addClass('do-once').slideToggle();
console.log('log');
}
});
答案 2 :(得分:0)
很难模仿JSFiddle中的屏幕滚动(因为它显示在一个框架中),但这应该表明我的意思:
忽略模仿文档和窗口的黑客攻击,您只想根据屏幕边缘的距离来调用slideUp
或slideDown
。冗余地再次调用它们很少,所以可以调用每个卷轴。
$('#content').scroll(function () {
if ($(window).scrollTop() + $(window).height() > $(document).height()) {
$('#page-footer').slideDown();
console.log('log');
}
else
{
$('#page-footer').slideUp();
}
});
注意:>
可能需要>=
,但我无法在JSFiddle中正确测试它,因为它需要是JSFiddle的完整浏览器,我将它入侵了一下:)