如果jQuery中不显示任何元素,则更改另一个元素的可见性
问题描述:
如果特定元素具有display:none
,我需要更改另一个元素的显示属性。如果jQuery中不显示任何元素,则更改另一个元素的可见性
if ($("#first-layer").css('display') === 'none') {
$("#second-layer").removeAttr("visibility");
}
#second-layer {
color: black;
background-color: red;
width: 200px;
height: 150px;
background: yellow;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
visibility: hidden; // here I have to change by jQuery
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<header>
<div id="first-layer">
<div id="header-elements">
<div id="img-rain" class="animated fadeIn" class="img"><img src="img/img.png"> </div>
<div id="typed-strings" class="text">
<span class="animated fadeInUp" id="typed"></span>
<br/>
<span class="description animated fadeIn">Your weather in one place</span>
</div>
</div>
<div id="typed-strings">
</div>
<div class="start">
<button type="button" class="btn btn-primary btn-lg responsive-width button- bg-clr animated fadeIn">Get Started</button>
</div>
</div>
<div id="second-layer">123</div>
</header>
我试图从互联网解决方案,但他们没有工作。
答
你的代码目前没有做任何事情,但你可能有
if ($("#first-layer").not(":visible")) { // or .is(":hidden")
$("#second-layer").show();
}
或
$("#second-layer").css({visibility:visible});
一个更简单的时间,因为CSS声明是不是属性
更多检测这里 Difference between :hidden and :not(:visible) in jQuery
+0
瞄准它非常感谢你:) 结果: 我在CSS的第二层显示设置:无和JS我把这个: 如果($(“#第一(“:hidden”)) {(“#second-layer”).css('display','block'); } – Remax
答
// if selector is none then
if($('#first-layer').is(":hidden")){
// alter second-layers visibility
$('#second-layer').css('visibility', 'visible');
}
visibility:hidden;是不是一个属性,所以你不能用removeAttr –