2015-09-06 1 views
1

Как и в названии, у меня есть элемент, который не должен исчезать, но есть. Этот элемент представляет собой текст поверх изображения, которое исчезает, когда вы наводите на него мышь.Элемент не должен исчезать, но равен

HTML:

<div id="image-wrapper"> 
<ul id="team-members"> 
    <li class="tile-wrapper fade"> 
     <div class="tile"> 
      <img src="http://placehold.it/158x210" /> 
      <h3 class="bio bio-header" style="display:none;">Header</h3> 
      <p class="bio bio-footer" style="display:none;">Information</p> 
     </div> 
    </li> 
</ul> 

JQuery

$(document).ready(function() { 
$('.fade').mouseenter(function (ev) { 
    $(this).fadeTo(150, 0.5); 
    $(this).find('img').siblings().fadeIn(150); 
}).mouseleave(function() { 
    $(this).fadeTo(150, 1); 
    $(this).find('img').siblings().fadeOut(150); 
}); 
}); 

Fiddle: https://jsfiddle.net/oLckb6h3/4/

+1

Изображение не исчезает, '$ (это) .fadeTo (150, 0.5);' линия выцветания весь '.fade', и вы думаете, что изображение выцветает. Просто прокомментируйте строку и проверьте. – thecodeparadox

+0

@thecodeparadox Как вы предлагаете мне это исправить? – jhearst

ответ

1

Предложение:

HTML

<div id="image-wrapper" > 
    <ul id="team-members"> 
     <li class="tile-wrapper fade"> 
      <div class="tile"> 
       <div class="doFade">&nbsp;</div> 
       <div class="info"> 
        <h3 class="bio bio-header">Header</h3> 
        <p class="bio bio-footer">Information</p> 
       </div> 
       <img src="http://placehold.it/158x210"/> 
      </div> 
     </li> 
    </ul> 
</div> 

CSS

ul { 
    list-style-type:none; 
} 

.bio { 
    padding:15px; 
} 

.tile { 
    width:158px; 
    height:210px; 
    border: 1px solid black; 
    position: relative; 
} 

.doFade { 
    position: absolute; 
    left: 0; 
    background: #fff; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    opacity: 0.5; 
    display: none; 
} 

.info { 
    position: absolute; 
    left: 0; 
    background: transparent; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    display: none; 
} 

JQuery

$(document).ready(function() { 
    $('.fade').mouseenter(function(ev) { 
     $('.doFade', this).add($('.info', this)).fadeIn(150); 
    }).mouseleave(function() { 
     $('.doFade', this).add($('.info', this)).fadeOut(150); 
    }); 
}); 

DEMO

+0

Когда я запускал демо, текст все еще исчезал – jhearst

+0

@jhearst Пожалуйста, проверьте ответ на обновление. – thecodeparadox

+0

это работает, спасибо! – jhearst

0

размытый img, а не .fade элемент ...

$(document).ready(function() { 
 
    $('.fade').mouseenter(function(ev) { 
 
     $(this).find('img').fadeTo(150, 0.5).siblings().fadeIn(150); 
 
    }).mouseleave(function() { 
 
     $(this).find('img').fadeTo(150, 1).siblings().fadeOut(150); 
 
    }); 
 
});
ul { 
 
    list-style-type:none; 
 
} 
 

 
.bio { 
 
    padding:15px; 
 
} 
 

 
.bio-header { 
 
    margin-top:-150px; 
 
} 
 

 
.tile { 
 
    width:158px; 
 
    height:210px; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="image-wrapper" > 
 
    <ul id="team-members"> 
 
     <li class="tile-wrapper fade"> 
 
      <div class="tile"> 
 
       <img src="http://placehold.it/158x210"/> 
 
       <h3 class="bio bio-header" style="display:none;">Header</h3> 
 
       <p class="bio bio-footer" style="display:none;">Information</p> 
 
      </div> 
 
     </li> 
 
    </ul> 
 
</div>

+0

Когда я запускал демонстрацию, текст все еще исчезал – jhearst

Смежные вопросы