gpt4 book ai didi

javascript - 限制 'mousewheel' 增量每次滚动触发一次

转载 作者:数据小太阳 更新时间:2023-10-29 05:10:22 24 4
gpt4 key购买 nike

我在下面使用下面的代码,在不同的方向滚动两个 div () 但我很想知道你是否可以限制滚动,这样它每次滚动只触发一次(而不是不断滚动并发送我的函数进入无限循环。

$('.page-left, .page-right').bind('mousewheel', function(event, delta) {
var windowHeight = $(window).height();
if (delta < 0) {
prevProject();
}
if (delta > 0) {
nextProject();
}
});

你可以看到我在这里:http://dev.rdck.co/lyonandlyon/

提前致谢,R

供引用的动画功能:

var prevProject = function() { // up arrow/scroll up
var windowHeight = $(window).height();

$('.page-left .page-left-wrapper').css({bottom:'auto'});
$('.page-left .page-left-wrapper').animate({top:0},800, function() {
$('.page-left .page-left-wrapper').prepend($('.page-left .project-left:last-of-type'));
$('.page-left .page-left-wrapper').css({top:-windowHeight});
});
$('.page-right .page-right-wrapper').css({top:'auto'});
$('.page-right .page-right-wrapper').animate({bottom:+windowHeight*2},800, function() {
$('.page-right .page-right-wrapper').append($('.page-right .project-right:first-of-type'));
$('.page-right .page-right-wrapper').css({bottom:+windowHeight});
});
};


var nextProject = function() { // down arrow/scroll down
var windowHeight = $(window).height();

$('.page-left .page-left-wrapper').animate({top:0},800, function() {
$('.page-left .page-left-wrapper').prepend($('.page-left .project-left:last-of-type'));
$('.page-left .page-left-wrapper').css({top:-windowHeight});
});
$('.page-right .page-right-wrapper').animate({bottom:+windowHeight*2},800, function() {
$('.page-right .page-right-wrapper').append($('.page-right .project-right:first-of-type'));
$('.page-right .page-right-wrapper').css({bottom:+windowHeight});
});
};

最佳答案

您可以在鼠标滚轮功能 ( demo ) 中检查动画

$('.page-left, .page-right').on('mousewheel', function(event, delta) {
if ($('.page-left-wrapper, .page-right-wrapper').is(':animated') ) {
return false;
}
var windowHeight = $(window).height();
if (delta < 0) {
prevProject();
}
if (delta > 0) {
nextProject();
}
});

更新:我们决定使用去抖动,因为需要停止长滚动(在触摸板上滑动手指)(updated demo)。

$(document).keydown( $.debounce( 250, function(e) {
switch (e.which) {
case 38: // up arrow
prevProject();
break;
case 40: // down arrow
nextProject();
break;
}
}) );

$('.page-left, .page-right').on('mousewheel', $.debounce( 250, function(event, delta) {
var windowHeight = $(window).height();
if (delta < 0) {
prevProject();
}
if (delta > 0) {
nextProject();
}
}) );

关于javascript - 限制 'mousewheel' 增量每次滚动触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com