javascript - onClick 的 jQuery 动画不适用于连续点击

标签 javascript jquery html css

我有以下代码来显示“已复制!”单击按钮时的消息。我添加了一些 jQuery 代码来为消息设置动画。问题是,如果我在短时间内单击按钮两次或两次以上,则不会显示消息。并且还有延迟点击,消息仅显示三次点击。第三次单击后,消息未显示。我该如何解决这个问题?

$("button").on("click", function(){
	$(".note").show();
  $(".note").css("opacity", "1");
  $('.note').animate({
    opacity: "0"
  }, 2200);
  $(".note").hide(2200);
});
.note {
        display: none;
        position: absolute;
        background-color: #4ea2e2;
        color: #fff;
        left: 35%;
        padding: 10px;
        border-radius: 4px;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Click</button>
<div class="note">
  <span>Code Copied!</span>
</div>

最佳答案

它也在处理多次点击。但是由于你给动画的时间太长,所以没有渲染。一旦第一个动画完成,它将再次开始。您可以检查 chrome 中的按钮并查看值的变化。完成所有计算后,您可以再次单击,它将再次运行。

$("button").on("click", function(){
	$(".note").show();
  $(".note").css("opacity", "1");
  $('.note').animate({
    opacity: "0"
  }, 200);
  $(".note").hide(200);
});
.note {
        display: none;
        position: absolute;
        background-color: #4ea2e2;
        color: #fff;
        left: 35%;
        padding: 10px;
        border-radius: 4px;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>Click</button>
<div class="note">
  <span>Code Copied!</span>
</div>

关于javascript - onClick 的 jQuery 动画不适用于连续点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54397583/

相关文章:

javascript - React JS setState 行为

javascript - 替换两个 div 时底部内容不会闪烁

javascript - 防止双击导致 HTML 表单中的重复提交

javascript - 展开/折叠带有动画和非固定大小的 div

javascript - tumblr:如何让我的帖子停在某个边缘?

javascript - 使用条件变量和非条件变量创建 JavaScript 字符串

javascript - jQuery 页面滚动不会将导航栏 href 更改为事件类

javascript - jQuery 在 AJAX 响应字符串中查找脚本标签

javascript - 网站 API : separate backend and frontend with an API

javascript - JQuery fadeIn() 不工作——简单的例子