【发布时间】:2018-12-06 04:01:08
【问题描述】:
我正在学习 JavaScript。我尝试实现一个简单的叠加层,它在单击按钮时转换并在单击关闭按钮后关闭。
但是,在关闭叠加层后,触发叠加层的按钮在单击时没有响应。 但是刷新页面后就可以正常使用了,这是为什么呢?
代码如下:
<a href="#" class="fadeInRight wow btn btn-border btn-lg " onclick="openNav()" data-wow-delay=".6s">Explore More</a>
这是带有函数 openNav() 的按钮
<div id="myNav" class="overlayed">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<div>overlay content</div>
</div>
<script type="text/jscript">
function openNav() {
var element = document.getElementById("myNav");
element.classList.toggle("opened");
}
function closeNav() {
document.getElementById("myNav").style.width = "0%";
}
</script>
打开的是一个有css内容的类
.opened
{
width: 100%;
height:100%;
transition: width 6s, height 4s;
opacity: 1;
}
谢谢
【问题讨论】:
-
内联样式覆盖样式表中的规则,因此
width保持为零,无论样式表规则说什么。 -
@abhilash gopalakrishna on closeNav 功能为什么要设置宽度 0% ?而是切换类
.opened并尝试 -
我添加了打开的类以尝试将转换应用于覆盖。我尝试删除宽度-
document.getElementById("myNav").style.width = "0%";并在 closeNav() 上切换打开的类。我还尝试了 toggleDisplay() 功能。在这两种情况下 - 单击关闭图标无法关闭课程。这里是 codepen 的链接 - [codepen.io/itsmeabhilashgk/pen/qKJPVx?editors=1100]。 @Aravind S @niklaz @brk @Lars-Olof Kreim 谢谢:) -
@abhilash gopalakrishna
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>你在哪里closeNav()函数?将其定义为类似于toggleDisplay()...它将解决问题。
标签: javascript dom web-frontend