jQuery mouseenter简单的效果

时间:2015-12-04 14:49:59

标签: javascript jquery html

我试图在悬停时淡出<div class="front"><div class="back">,当用户徘徊时我需要还原,淡出返回并淡入< strong> front ,但我的<div class="back">在mouseleave上没有淡出。

很抱歉新手问题,但我不确定为什么这段代码不起作用。这是因为当前面淡出时我需要在后面的事件上触发mouseenter?

http://jsfiddle.net/8xo8c5pn/

HTML

$(".front").mouseenter(function() {
    $(this).removeClass('on').addClass('off');
    $(this).next().removeClass('off').addClass('on');
});

$(".back").mouseleave(function() {
    $(this).removeClass('on').addClass('off');
    $(this).prev().removeClass('off').addClass('on');
});
.on{
    display:inherit;
}
.off{
    display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<figure>
  <div class="front">
   <img src="http://vignette3.wikia.nocookie.net/jadensadventures/images/5/54/Pokemon-Ash-s-Pikachu-Riley-Sir-Aaron-s-Lucarios-pokemon-guys-10262907-563-579.jpg/revision/latest?cb=20120902022940">
    <div class="cover">
       <div class="">Hello</div>
     </div>
 </div>
 <div class="back off">
<div class="back box-style-1 off-color-bg">
 <i class="fa fa-leaf"></i><p></p>
 <h2>im the back</h2>
<p>Some text</p>
 </div>
</div>

 </figure>

3 个答案:

答案 0 :(得分:1)

您有2个返回课程的元素,因此请使用.back.off而不是.back

试试这个

$( ".front" ).mouseenter(function() {
    $(this).removeClass('on').addClass('off');
    $(this).next('.back.off').removeClass('off').addClass('on');
});

$( ".back.off" ).mouseleave(function() {
    $(this).removeClass('on').addClass('off');
    $(this).prev('.front').removeClass('off').addClass('on');
});

DEMO

答案 1 :(得分:1)

$(document).ready(function() {
  $(".back").hide(); //hide back initially
  $(".front").mouseenter(function() {
    $(".back").show();
    $(this).hide();
  });

  $(".back").mouseleave(function() {
    $(".front").show();
    $(this).hide();
  });

});
.back,
.front {
  border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<figure>
  <div class="front">
    <img src="http://vignette3.wikia.nocookie.net/jadensadventures/images/5/54/Pokemon-Ash-s-Pikachu-Riley-Sir-Aaron-s-Lucarios-pokemon-guys-10262907-563-579.jpg/revision/latest?cb=20120902022940">
    <div class="cover">
      <div class="">Hello</div>
    </div>
  </div>
  <div class="back off">
    <div class="back box-style-1 off-color-bg">
      <i class="fa fa-leaf"></i>
      <p></p>
      <h2>im the back</h2>
      <p>Some text</p>
    </div>
  </div>

答案 2 :(得分:0)

试试这个,使用悬停功能代替mouseenter并离开:

<div class"album">
    <div class"front">
    </div>
    <div class"cover" style="display:none;">
    </div>
</div>

$( ".album" ).hover(
function() {  // IN
    $(this).find('.front').hide();
    $(this).find('.cover').show();
},function() { // OUT
    $(this).find('.front').show();
    $(this).find('.cover').hide();
});