javascript - 当用户继续滚动时,在不中断动画的情况下在滚动页面上滑动 div 和关闭页面

标签 javascript jquery

我试图仅使用 jQuery 将 div 平滑地滑入和滑出页面(从左到右)。我已经完成了任务,但是如果您在动画仍在进行时继续向上或向下滚动,它会在 Action 中间中断它,导致它犹豫。我以前遇到过这个问题,如果不使用某种插件就永远无法解决。

我知道如何使用 CSS 转换、jQuery UI、greensock 等来完成此操作,但我很好奇是否有一种方法可以仅使用 jQuery 来防止这种中断。如果有纯 JavaScript 解决方案(无 jQuery),我也持开放态度。

我的代码:

var amountScrolled = 50;

$(window).scroll(function() {
    if ($(window).scrollTop() > amountScrolled) {
        $('#slide').stop().animate({marginLeft:"0px"}, 500);
    } else {
        $('#slide').stop().animate({marginLeft: "-400px"}, 500);
    }
});

示例:https://jsfiddle.net/Hysteresis/hg9cvxop/6/

最佳答案

这有效:JSFIDDLE link

都是关于回调函数的!

var amountScrolled = 50;
var loopRunning = 0;

$(window).scroll(function() {
    if ($(window).scrollTop() > amountScrolled){
        if(loopRunning === 0){
            animateSlide("0px",500); 
        }
    } else {
        if(loopRunning === 0){
            animateSlide("-400px",500);
        }
    }
});

function animateSlide(px, time){
    loopRunning = 1;
    $('#slide').stop().animate({marginLeft:px}, time, function(){
        loopRunning = 0;
    });
}

关于javascript - 当用户继续滚动时,在不中断动画的情况下在滚动页面上滑动 div 和关闭页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081989/

相关文章:

javascript - if-else 语句导致按钮出现问题

asp.net - session 状态阻止并发处理的异步 ajax 调用

javascript - 某些函数中的 JS/JQuery 全局数组错误

javascript - jQuery 中匿名函数包装器的用途是什么?

php - 使用 javascript 和 mysql 查询自动填充字段以进行下拉

javascript - 获取 Google Places Nearby Search 的 JSON

javascript - 调整图像预览大小不起作用

javascript - 使用 forEach 函数聚焦于第一个字段

javascript - 超越难倒; IE 中奇怪的 JQuery 循环行为

javascript - jquery添加的内联样式为空