Jos*_*hua 3 javascript css html5
我有一个需要注册点击的汉堡菜单(然后我会展开菜单..)
汉堡图标/菜单的HTML是:
<div class="burger-menu-holder">
<a href="#" id="burger-menu">
☰
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS很简单:
#burger-menu{
display: block;
}
Run Code Online (Sandbox Code Playgroud)
注册点击并运行该功能的Javascript是:
var burger = document.getElementById("burger-menu");
burger.addEventListener('click', function(){
if(burger.style.display=='block'){
alert("LOL");
}
}, false);
Run Code Online (Sandbox Code Playgroud)
但是当我点击菜单时没有任何反应.控制台中没有错误,但是当我删除if(burger.style.display == 'block')它时,导致我认为由于某种原因它没有正确测试CSS属性.
问题是汉堡style="display: block;"最初没有(即使它是可见的),所以burger.style.display == 'block'失败了.
测试元素CSS样式的方法不是很可靠.我会去上课:
var burger = document.getElementById("burger-menu");
burger.addEventListener('click', function() {
if (burger.className === 'show') {
alert("LOL");
}
}, false);
Run Code Online (Sandbox Code Playgroud)
HTML:
<a href="#" id="burger-menu" class="show">☰</a>
Run Code Online (Sandbox Code Playgroud)
在CSS中:
.show {
display: block;
}
Run Code Online (Sandbox Code Playgroud)
类名的另一个好处是,您可以轻松地更改和设置show行为,而不会影响JavaScript代码.
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |