javascript - 在 fadeIn/FadeOut 运行时防止触发其他脚本

标签 javascript jquery

所以我有 4 组不同的脚本,它们在单击时淡入/淡出几个 div。我遇到的问题是,如果您混合/单击大量淡入/淡出效果混合在一起。如何将它们设置为仅在淡入/淡出循环完成后才触发?

这是我的 jquery 脚本。如果需要,我可以发布 html。

// 1st Navigation


$("#1stforward").click(function() {
  $("#1st").fadeOut(3500, 'swing');
  $("#2nd").delay(3375).fadeIn(4500, 'swing');

});



//2nd Navigation 


$("#2ndback").click(function() {
  $("#2nd").fadeOut(3500, 'swing');
  $("#1st").delay(3500).fadeIn(4500, 'swing');


});

$("#2ndforward").click(function() {
  $("#2nd").fadeOut(3500, 'swing');
  $("#3rd").delay(3500).fadeIn(4500, 'swing');


});




// 3rd Navigation 


$("#3rdback").click(function() {
  $("#3rd").fadeOut(3500, 'swing');
  $("#2nd").delay(3500).fadeIn(4500, 'swing');


});

$("#3rdforward").click(function() {
  $("#3rd").fadeOut(3500, 'swing');
  $("#4th").delay(3500).fadeIn(4500, 'swing');


});



// 4th  Navigation 


$("#4thback").click(function() {
  $("#4th").fadeOut(3500, 'swing');
  $("#3rd").delay(3500).fadeIn(4500, 'swing');


});

$("#4thforward").click(function() {
  $("#4th").fadeOut(3500, 'swing');
  $("#5th").delay(3500).fadeIn(4500, 'swing');


});

最佳答案

你说他们都是div吧?如果是这样,您几乎可以复制/粘贴它,这样可以防止双击。我将超时功能设置为半秒,您可以根据需要更改“500”的毫秒数。它会阻止指针事件(例如单击)半秒钟。

最好为您不想被点击的所有内容添加一个特定的类,并使用超时功能来定位它,但这应该可以。

// 1st Navigation
$("#1stforward").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
    $(this).css(
  $("#1st").fadeOut(3500, 'swing');
  $("#2nd").delay(3375).fadeIn(4500, 'swing');
});


//2nd Navigation 
$("#2ndback").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#2nd").fadeOut(3500, 'swing');
  $("#1st").delay(3500).fadeIn(4500, 'swing');
});

$("#2ndforward").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#2nd").fadeOut(3500, 'swing');
  $("#3rd").delay(3500).fadeIn(4500, 'swing');
});


// 3rd Navigation 
$("#3rdback").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#3rd").fadeOut(3500, 'swing');
  $("#2nd").delay(3500).fadeIn(4500, 'swing');
});

$("#3rdforward").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#3rd").fadeOut(3500, 'swing');
  $("#4th").delay(3500).fadeIn(4500, 'swing');
});


// 4th  Navigation 
$("#4thback").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#4th").fadeOut(3500, 'swing');
  $("#3rd").delay(3500).fadeIn(4500, 'swing');
});

$("#4thforward").click(function() {
  $('div').css('pointer-events', 'none');
  setTimeout(function() {
    $('div').css('pointer-events', 'auto');
  },500);
  $("#4th").fadeOut(3500, 'swing');
  $("#5th").delay(3500).fadeIn(4500, 'swing');
});

关于javascript - 在 fadeIn/FadeOut 运行时防止触发其他脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46311602/

相关文章:

javascript - 更改当前 li 类(被点击的那个)

javascript - 当按钮被禁用时创建警报

javascript - 在上一张幻灯片后继续滚动

javascript - 使用 jQuery 在 div 之间注入(inject)自定义代码

java - spring 生成的页面上的 Jquery 覆盖表单

javascript - Bootstrap 3 选项卡中的单击事件

javascript - 如何传递内联 JSON 而不是 URL 路径

javascript - JsDoc 工具包和命名空间 - 警告尝试..而不

jquery - IE 6 和 jQuery 1.3.2 不起作用(附代码)

javascript - 使用 "` 的 es6 jsx 语法错误“