首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在几秒钟后自动关闭一个警报与引导?

如何在几秒钟后自动关闭一个警报与引导?
EN

Stack Overflow用户
提问于 2021-06-28 14:37:20
回答 2查看 6.4K关注 0票数 0

我已经开发了一个Python/Flask应用程序,并遇到了一个实现Bootstrap警报的问题,其中的想法是:

  • 通过关闭按钮可被解雇。
  • 如果不采取任何行动,则在2s后淡出并关闭。

代码

代码语言:javascript
运行
复制
<div class="container">
        {% for message in get_flashed_messages() %}   
        <script>       
          function close_alert()
          {
            document.getElementById("my_alert").close()
          }
          setTimeout("close_alert()", 2000)
        </script>
        <div id="my_alert" class="alert alert-primary alert-dismissible fade show" role="alert">
          <strong>{{message}}</strong>
          <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
        </div>
        {% endfor %}
</div>

我是相当新的靴带,我将感谢任何支持!

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-28 15:19:42

您可以使用Bootstrap方法来实现这一点。看看这里在页面底部获取更多信息。

逻辑

单击按钮时,jQuery将删除使其可见的警报元素的类d-none。然后,通过使用setTimeout(),JS将等待2000 JS,然后使用alert()引导4方法关闭警报。

它只适用于一次点击。

注意事项:使用引导带4方法需要使用jQuery。

代码语言:javascript
运行
复制
$('#btn').click(function(){

  $('#alert').removeClass('d-none');
  
  setTimeout(() => {
    $('.alert').alert('close');
  }, 2000);
  
})
代码语言:javascript
运行
复制
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" crossorigin="anonymous">
 
<div id="alert" class="alert alert-primary m-3 d-none" role="alert">
  This is a primary alert—check it out!
</div>

<button class="btn btn-primary m-3" id="btn">
  show alert and close it in 2 seconds
</button>

带普通JavaScript

此代码将在用户每次单击该按钮时显示警报。如果您不想这样做,可以使用布尔值或会话存储变量与条件语句相结合,使其只工作一次。

代码语言:javascript
运行
复制
const btn = document.getElementById('btn'),
      alert = document.getElementById('alert');
      
btn.addEventListener('click', () => {
  
  alert.classList.remove('d-none');
  
  setTimeout(() => {
    alert.classList.add('d-none');
  }, 2000)
  
})
代码语言:javascript
运行
复制
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" crossorigin="anonymous">
 
<div id="alert" class="alert alert-primary m-3 d-none" role="alert">
  This is a primary alert—check it out!
</div>

<button id="btn" class="btn btn-primary m-3">
  show alert and close it in 2 seconds
</button>

票数 1
EN

Stack Overflow用户

发布于 2021-06-28 15:42:35

我建议使用“土司”--这是一个用于用例的UI组件:https://getbootstrap.com/docs/4.2/components/toasts/

来自Bootstrap docs:

代码语言:javascript
运行
复制
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
  <div class="toast-header">
    <img src="..." class="rounded mr-2" alt="...">
    <strong class="mr-auto">Bootstrap</strong>
    <small class="text-muted">11 mins ago</small>
    <button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
      <span aria-hidden="true">&times;</span>
    </button>
  </div>
  <div class="toast-body">
    Hello, world! This is a toast message.
  </div>
</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68165290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档