【发布时间】:2020-01-18 11:27:18
【问题描述】:
我有一个不可见的 div,我想通过单击一个元素使其可见。 它似乎不起作用。我在这里错过了什么?
我尝试使用 jQuery 定位 <a class=".demo"> 并使用单击功能将类 .open 添加到 <div class="demo-div"> 以使其可见
$(".demo").click(function() {
$(".demo-div").addClass("open");
});
$(".demo").click(function() {
$(".demo-div").removeClass("open");
});
.demo-div {
background: #3AB0E0;
color: #18191D;
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
padding: 3.75rem;
z-index: 99;
opacity: 0;
visibility: hidden;
overflow-x: hidden;
overflow-y: hidden;
transform: tranlateY(-100%);
transition: all 0.5s ease-in-out;
}
.demo-div.open {
opacity: 1;
z-index: 99;
visibility: visible;
transform: translateY(0);
transition: all 0.5s ease-in-out;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="javascript:void(0);" class="demo">click here</a></li>
</ul>
</nav>
<div class="demo-div"></div>
而且它似乎没有将打开的类添加到类 demo-div
如果你删除这个类demo-div你可以看到它出现
opacity: 0;
visibility: hidden;
***更新 我明白我做错了什么,添加新类时它应该包含一个关闭按钮,例如 .demo-close-btn
$(".demo").click(function() {
$(".demo-div").addClass("open");
});
$(".demo-close-btn").click(function() {
$(".demo-div").removeClass("open");
});
【问题讨论】:
-
您正在向
.demo添加 2 个点击处理程序。第一个添加类,第二个删除它,这会在几毫秒内发生。将第二次点击处理程序更改为$('.demo-div').click()参见 jsfiddle.net/va6z075d