【问题标题】:How to pause Jquery div slider on mouseover and restart it on mouseout如何在鼠标悬停时暂停 Jquery div 滑块并在鼠标悬停时重新启动它
【发布时间】:2014-05-31 18:24:35
【问题描述】:

晚上好, 我这里准备了jsfiddle Demo http://jsfiddle.net/Z6Y95/1/

这是html:

<ul>
<li><a href="#" class="stop" id="dev" >a1</a></li>
<li><a href="#" class="stop" id="facebook" > a2</a></li>
<li><a href="#" class="stop" id="seo">a3</a></li>
<li><a href="#" class="stop" id="support">a4</a></li></ul>
<div id="serviceimg" class="serviceimg">
<div class="hide" name="dev" style="background:red;color:#fff;">a1</div>
<div class="hide" name="facebook" style="background:red;color:#fff;">a2</div>
<div class="hide" name="seo" style="background:red;color:#fff;">a3</div>
<div class="hide" name="support" style="background:red;color:#fff;">a4</div>
</div>

这是一个有效的 jquery div 滑块,但我需要在 href 鼠标悬停它并显示与此关联的特定 div。 在鼠标移出时,它必须继续 div 滑动,但在我的情况下,在鼠标移出时,我会暂停几秒钟而没有显示 div。 如何在鼠标移出时开始 div 滑动?

提前谢谢你!

【问题讨论】:

    标签: javascript jquery html slider slideshow


    【解决方案1】:

    这是更新后的 JS 代码:

    $('.serviceimg div').hide(); // hide all slides
        $('.serviceimg div:first-child').show(); // show first slide
    
        var prop;
    
    
    
        prop = setInterval(function () {
            $('.serviceimg div:first-child').hide()
                .next('div').show()
                .end().appendTo('.serviceimg');
        }, 3000);
    
        $('div').hover(function () {
    
            clearInterval(prop);
    
        }, function () {
            console.log('out');
            prop = setInterval(function () {
                $('.serviceimg div:first-child').hide()
                    .next('div').show()
                    .end().appendTo('.serviceimg');
            }, 3000);
            return false;
        });
    

    DEMO

    SetInterval 可能非常“危险”,因为它会在您悬停时堆叠。我使用return false 来防止这种情况。

    .hover 函数结果证明最适合您的情况。您可以阅读更多信息here

    【讨论】:

    • 感谢您帮助我。你的小提琴的工作方式与我的不同。鼠标移出触发后我仍然可以看到 1-2 秒延迟.. 这不应该是.. 在某处我读到 jquery setinterval() 必须暂停,但不明白如何.. 并且在你的中没有看到解决方案小提琴 - 正确吗?
    • 哦,我现在明白了:你想要这样的东西吗:jsfiddle.net/Z6Y95/3
    • 不,这不是可以通过 css 解决的问题。我看不出你的两个 jsfiddles 之间有什么区别。我的意思是你没有添加任何 js 脚本,对吗?我仍然可以看到我在开始时的延迟..
    • 给我几秒钟,我看看我能做什么
    • 好的,我更新了我的解决方案。很抱歉让您误会了!现在,每次将鼠标悬停在 div 上时,它都会冻结。当您将鼠标悬停时,它会继续。我希望这对你有用!
    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2011-12-12
    • 1970-01-01
    相关资源
    最近更新 更多