如果视口大于960px,则#right
元素应自动滚动,如果视口大于960px,则应停止。如果我开始使用缩放到960px以上的小视口,它就已经可以了。如果我将其缩放回小于960px,它仍然会滚动。任何人都可以帮我吗?
function checkWidth() {
var windowSize = $(window).width();
if (windowSize < 960) {
$(window).scroll(function() {
var space = $(window).scrollTop();
return 0;
});
}
else {
$(window).scroll(function() {
var space = $(window).scrollTop();
return $('#right').animate({top: space}, {queue: false});
});
}
}
// Execute on load
checkWidth();
// Bind event listener
$(window).resize(checkWidth);
答案 0 :(得分:1)
我认为你需要这个:jQuery.stop()以防小窗口:
if (windowSize < 960) {
$(window).scroll(function() {
var space = $(window).scrollTop();
return $('#right').stop();
});
}
答案 1 :(得分:0)
您正在每个调整大小上绑定新的滚动事件。作为一个简单的修复,unbind事件:
function checkWidth() {
var windowSize = $(window).width();
if (windowSize < 960) {
$(window).off('scroll').scroll(function() {
var space = $(window).scrollTop(); // don't know what you are expecting here???
return 0;
});
}
else {
$(window).off('scroll').scroll(function() {
var space = $(window).scrollTop();
$('#right').animate({top: space}, {queue: false});
});
}
}
顺便说一句,你也可以像@ Michal的回答一样使用.stop()
。