javascript 如何更改id到类吐司通知和关闭按钮?

puruo6ea  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(149)

我有一个简单的吐司通知代码,是我从W3学校收集的。但是有一个问题。它使用id,我们知道一个id只能使用一次。我想改变id并将其作为class使用。这样我就可以使用很多次。如果可以通过jquery完成,那也会很容易。
另一个事实是,我想增加一个关闭按钮。这样,任何人都可以关闭它。因为它消失后3秒,所以将有两个选项。自动删除/淡出和可关闭系统。
看看我的代码:
`

<style type="text/css">
#snackbar {
  visibility: hidden;
  min-width: 250px;
  margin-left: -125px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 2px;
  padding: 16px;
  position: fixed;
  z-index: 1;
  left: 50%; 
  bottom: 30px; 
}
#snackbar.show {
  visibility: visible;
  -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
@-webkit-keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}
@keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}
@-webkit-keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}
</style>

<button onclick="myFunction()">Show Snackbar</button>
<div id="snackbar">Some text some message..</div>

<script type="text/javascript">
function myFunction() {
  var x = document.getElementById("snackbar");
  x.className = "show";
  setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}
</script>

`
我该怎么做?
将id更改为class并添加一个关闭按钮到吐司通知。

flseospp

flseospp1#

在css中,#用作选择id的前缀,.前缀用于基于类进行选择。

  • 修改您的HTML并使用class名称作为吐司div
  • 修改CSS以指定所用class的规则
  • 修改JavaScript代码以使用document.getElementsByClassName而不是document.getElementById(..)
  • 进一步修改JavaScript代码以处理循环中返回的元素,因为此方法返回HTMLCollectionClick Here for API Docs)。

下面是我用两个toast创建的一个jsfiddle-https://jsfiddle.net/6hq2vzwu/
编辑:另一个(更新)版本的小提琴-你可以点击拳头吐司关闭-https://jsfiddle.net/r9npkgc8/3/

相关问题