如何停止fadeIn()闪烁?

muu*_*ess 7 jquery

目前我有一个简单的div,我希望在另一个div的鼠标悬停时淡入,但它会闪烁3次.

我已经阅读了其他一些问题,我认为这与我的代码结构有关.但我不确定如何纠正我的,因为它已经是如此基本.

这是我的代码:

<script type="text/javascript">
    $(document).ready(function(){
        $('.content .guide ul.guide li .event').mouseover(function(){
            $(this).find('.info').fadeIn();
        });
        $('.content .guide ul.guide li .event').mouseout(function(){
            $(this).find('.info').fadeOut();
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

CSS

.content .guide ul.guide li .event .info {display:none;}
Run Code Online (Sandbox Code Playgroud)

HTML

<ul class="guide">
    <li class="mon">
        <div class="day">Monday</div>
        <div class="session-1 event">
            <time>7:30am</time>
            <span>Ep 5: <a href="">Lorem</a></span>
            <div class="info">
                <div class="tooltip"></div>
                <div class="wrap">
                    <div class="desc">Ep 8: Lorem ipsum</div>
                </div>
            </div>
        </div>
        <div class="session-2 event">
            <time>8:30pm</time>
            <span>Ep 5: <a href="">Lorem</a></span>
            <div class="info">
                <div class="tooltip"></div>
                <div class="wrap">
                    <div class="desc">Ep 8: Lorem ipsum</div>
                </div>
            </div>
        </div>
    </li>
    <li class="tue">
        <div class="day">Tuesday</div>
        <div class="session-1">
        </div>
        <div class="session-2">
        </div>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

Dip*_*ips 20

您可以使用它stop().fadeTo()来防止这种情况.请参阅下面的代码和演示

<script type="text/javascript">
    $(document).ready(function(){
        $('.content .guide ul.guide li .event').mouseover(function(){
            $(this).find('.info').stop().fadeTo('slow',1);
        });
        $('.content .guide ul.guide li .event').mouseout(function(){
            $(this).find('.info').stop().fadeTo('slow',0);
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

  • 只是要注意`fadeTo`并不特别,所有的魔法都在`stop`:`.stop().fadeIn()`和`.stop().fadeOut()`也可以. (2认同)
  • 我即将给出同样的答案.这是我为它创建的小提琴:http://jsfiddle.net/MnwTN/请注意,你可能需要`.stop(true,true)`(否则,根据你如何操纵鼠标,你可能会得到这个元素即使你还在它上面就消失了.如果你解释_why_这会解决问题,我会给你一个+1 (2认同)

it3*_*3xl 6

我只在Google Chrome中遇到此问题.

我已经改变.fadeIn,以.fadeTo(myDuration,1)解决它.

另外,对我来说,一切都很好.stop().