javascript - jQuery fadeOut 已经无法点击

标签 javascript jquery

我有一个淡入、持续 30 秒然后淡出的 HTML 容器消息。我想在它上面有一个“关闭”功能,并希望点击事件淡出以隐藏容器。但它不适用于先前的 fadeOut

(function() {

  $('.container')
    .delay(1000).fadeIn(500)
    .delay(30000).fadeOut(500);

  $('button').click(function() {
    $('.container').fadeOut(500);
  });
}());
.container {
  background-color: #ccc;
  display: none;
  padding: 1rem;
  width: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  Hello world
</div>
<button>Close</button>

我可以调用hide(),但我想要fadeOut 提供的平滑过渡。我只是不明白为什么这行不通。有任何想法吗?谢谢!

最佳答案

改为使用 setTimeout 排队 30 秒的 fadeOut:

const container = $('.container');
container
  .delay(1000)
  .fadeIn(500);
setTimeout(() => container.fadeOut(500), 31000);

$('button').click(function() {
  container.fadeOut(500);
});
.container {
  background-color: #ccc;
  display: none;
  padding: 1rem;
  width: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  Hello world
</div>
<button>Close</button>

关于javascript - jQuery fadeOut 已经无法点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50789861/

相关文章:

javascript - 帮助移植函数原型(prototype) -> jquery 1.4

javascript - 使用 PHP 和 JavaScript 更新 'credits'

javascript - header 位置为 :sticky is flickering in chrome when shrinking

javascript - jquery 从 HTML 表单发布数组数据

javascript - 用于文本区域和自由文本的 Facebook jQuery 自动完成插件

javascript - 如何使用 Javascript 检测区域的宽度并应用正确的菜单间距

jquery - 缓存页面上的就绪事件?

javascript - jQuery 不适用于动态添加的元素

javascript-objects - JavaScript 对象创建方法

javascript - 缩放 html Canvas (html/reactjs)