0
我一直在試圖禁用網站上的滾動,並使其可能只在不同部分(div)之間滾動。如何防止在網站上滾動,並只啓用滾動之間
滾動確實啓用,有時它會滾動到我想要的位置...
但有時它不會(即使滾動事件被識別並在JS的右側部分)。
https://jsfiddle.net/reeferblower/bktonrf7/
你可以看到,它的工作原理2-3次,那麼它是非常laggy,反應遲鈍。
$('body').on('scroll touchmove mousewheel', function(e) {
e.preventDefault();
e.stopPropagation();
fullPage(e);
});
function fullPage (e) {
var section1Top = 0;
var section2Top = $('#page-number-2').offset().top - (($('#page-number-3').offset().top - $('#page-number-2').offset().top)/2);
var section3Top = $('#page-number-3').offset().top - (($('#page-number-4').offset().top - $('#page-number-3').offset().top)/2);
var section4Top = $('#page-number-4').offset().top - (($(document).height() - $('#page-number-4').offset().top)/2);;
var pos = $(window).scrollTop();
console.log(pos);
if (e.originalEvent.wheelDelta >= 0) {
//up scroll
console.log("up...");
//section 2
if(pos == 0){
return;
}
if(pos > section1Top && pos < section3Top){
console.log("2 - 1 ");
$('html, body').animate({
scrollTop:0
}, 1000, function() {
// parallaxScroll(); // Callback is required for iOS
});
}
//section 3
else if(pos >= section2Top && pos < section4Top){
console.log("3 - 2 ");
$('html, body').animate({
scrollTop:$('#page-number-2').offset().top
}, 1000);
}
else{
console.log("4 - 3 ");
$('html, body').animate({
scrollTop:$('#page-number-3').offset().top
}, 1000);
}
}
else {
//down scroll
console.log("down");
//section 1
if(pos == '0'){
console.log("1 - 2 ");
$('html, body').animate({
scrollTop:$('#page-number-2').offset().top
}, 1000);
}
// section 2
else if(pos >= section1Top && pos < section3Top){
console.log("2 - 3 ");
$('html, body').animate({
scrollTop:$('#page-number-3').offset().top
}, 1000);
}
//section 4
else {
console.log("3 - 4 ");
$('html, body').animate({
scrollTop:$('#page-number-4').offset().top
}, 1000);
}
}
return false;
}
嘗試'$(窗口)'VS'$( '身體')' – Twisty
另外,第4頁打開後,沒有辦法返回,'上一頁鏈接失敗,滾動回不起作用。 – Twisty