我遇到了IE的一些问题以及我放在一起的这段代码。
我想要发生的事情如下:
我已经设法将我的预期行为放在一起,但它在IE上无法正常工作,因为它允许在第一个页脚下滚动,然后才设置scrollTop
值。此JSBIN在Chrome / Firefox / Safari上正常运行。
我在这里错过了什么让这段代码在IE上运行?
jQuery的:
var isAtBottom = false,
isFarDown = false,
wasClicked = false,
scrollComplete = false;
$(window).scroll(function() {
var scrollH = $(window).scrollTop(),
windowH = $(window).height(),
documentH = $(document).height(),
footer = $('.footer'),
breaker = $('.break');
if (scrollH > (documentH - windowH - footer.height())){
if(!wasClicked){
//here is where IE goes south
$('html, body').scrollTop(documentH - windowH - footer.height() - 1);
}
} else {
if(wasClicked && scrollComplete){
wasClicked=false;
scrollComplete=false;
}
}
});
$('.scrollToEnd').click(function(){
//sends you to top
if (isAtBottom) {
$('html, body').animate({
scrollTop: 0},
1200, function(){
wasClicked = false;
});
return;
}
//is anywhere above the absolute bottom
if (!isFarDown) {
wasClicked = true;
$('html, body').animate({
scrollTop: $(document).height() - $(window).height()},
1200, function(){
scrollComplete = true;
});
}
});
我已经阅读了有关该主题的几个答案,但还没有找到停止滚动事件的方法。
我已经看过overflow
解决方案了,但它并不适用于整个场景,虽然它确实停止了滚动它移除滚动条并给整个网站一个奇怪的左右移动。 (我不想添加overflow:scroll
来保持滚动,因为并非所有页面都会溢出)
我已经考虑从'html, body'
元素和window
取消绑定滚动事件,但无效。
有什么想法吗?