如果jQuery中不显示任何元素,则更改另一个元素的可见性

如果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>

我试图从互联网解决方案,但他们没有工作。

+0

visibility:hidden;是不是一个属性,所以你不能用removeAttr –

你的代码目前没有做任何事情,但你可能有

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

使用jQuery(":hidden")

// if selector is none then 
if($('#first-layer').is(":hidden")){ 

    // alter second-layers visibility 
    $('#second-layer').css('visibility', 'visible'); 
}