javascript - 在 jQuery 中防止双重动画

标签 javascript jquery animation

当用户点击速度太快时,如何阻止此功能发生两次?

$(document).ready(function() {
    $(".jTscroller a").click(function(event) {
        event.preventDefault();
        var target = $(this).attr("href");
        $("#photo").fadeTo("fast", 0, function() {
            $("#photo").attr("src",target);
            $("#photo").load(function() {
                $("#photo").fadeTo("fast", 1);
            });
        });
    });
});

我遇到的问题是,如果用户点击得太快,元素将不会淡入,它只是保持隐藏状态。

问题不是我想的那样。当我点击相同的缩略图时,它会尝试加载相同的图像并永远加载。 .stop() 答案确实修复了双重动画,所以我接受了那个答案,但我的解决方案是检查最后点击的项目是否是当前显示的项目。新脚本:

$(document).ready(function() {
    $(".jTscroller a").click(function(event) {
        event.preventDefault();
        var last = $("#photo").attr("src");                 
        var target = $(this).attr("href");
        if (last != target) {
            $("#photo").stop().fadeTo("fast", 0, function() {
                $("#photo").attr("src",target);
                $("#photo").load(function() {
                    $("#photo").fadeTo("fast", 1);
                });
            });
        };
    });
});

最佳答案

嗯,您在描述中使用了正确的词。使用 stop()

$("#photo").stop().fadeTo("fast", 0, function() {

关于javascript - 在 jQuery 中防止双重动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11761011/

相关文章:

javascript - 如何让 Prettier 忽略一段代码?

javascript - 使用 jQuery 检查父复选框

javascript - window.location.reload(true) 重新加载页面,但页面需要刷新才能显示更改

javascript - 无法在 Azure CDN 中包含 js 文件,来源是 WordPress

javascript - 使用 animate.css 重复动画循环

javascript - Jquery FadeOut 和 FadeIn - 设置显示样式

jquery - 如何在 MVC 中通过 AJAX 加载引导模式内容?

python - Matplotlib 动画 - 保存文件的速度出现问题

css - 使用 styled-components 动画背景渐变

ios - 不调用 UINavigationControllerDelegate 方法