简体   繁体   English

jQuery滑块mouseenter停止/ ouseaveave启动

[英]jquery slider mouseenter stop/mouseleave start

I want this jquery slider stop when mouseenter, start when mousleave. 我希望这个jquery滑块在mouseenter时停止,在mousleave时开始。

Now, it slides with fadeInOut, speed is 4sec, delay is 8sec. 现在,它以fadeInOut滑动,速度为4秒,延迟为8秒。

The code is here. 代码在这里。

<script>
$(function(){
    var $setElm = $('#slider_inner2'),
    fadeSpeed = 4000,
    switchDelay = 8000;

    $setElm.each(function(){
        var targetObj = $(this);
        var findUl = targetObj.find('ul');
        var findLi = targetObj.find('li');
        var findLiFirst = targetObj.find('li:first');

        findLi.css({display:'block',opacity:'0',zIndex:'99'});
        findLiFirst.css({display:'block',opacity:'1',zIndex:'100'});

        setInterval(function(){
            findUl.find('li:first-child').animate({opacity:'0'},fadeSpeed).next('li').css({zIndex:'100'}).animate({opacity:'1'},fadeSpeed).end().appendTo(findUl).css({zIndex:'99'});
        },switchDelay);
    });
});
</script>

applied HTML is this. 应用的HTML是这个。

    <div id="slider2">
        <div id="slider_inner2">
            <ul>
                <li class="slider01"><img src="/img/top/slider.png1"></li>
                <li class="slider01"><img src="/img/top/slider.png2"></li>
                <li class="slider01"><img src="/img/top/slider.png3"></li>
            </ul>
        </div><!-- /#slider_inner -->
    </div><!-- /#slider -->

取出动画代码,并将其粘贴到$(“ .slider01”).mouseover(){}代码中。

You can clear the interval using clearInterval() when you mouseover and initialize the events again on mouseleave. 您可以在鼠标悬停时使用clearInterval()清除间隔,并在mouseleave上再次初始化事件。 Please check the snippet provided 请检查提供的代码段

 $(function(){ initSlider(); $('#slider2').hover(function(){clearInterval(intMy);},initSlider); }); function initSlider(){ var $setElm = $('#slider_inner2'), fadeSpeed = 400, switchDelay = 800; $setElm.each(function(){ var targetObj = $(this); var findUl = targetObj.find('ul'); var findLi = targetObj.find('li'); var findLiFirst = targetObj.find('li:first'); findLi.css({display:'block',opacity:'0',zIndex:'99'}); findLiFirst.css({display:'block',opacity:'1',zIndex:'100'}); intMy = setInterval(function(){ findUl.find('li:first-child').animate({opacity:'0'},fadeSpeed).next('li').css({zIndex:'100'}).animate({opacity:'1'},fadeSpeed).end().appendTo(findUl).css({zIndex:'99'}); },switchDelay); }); } 
 ul{list-type:none;} 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="slider2"> <div id="slider_inner2"> <ul> <li class="slider01"><img src="http://media.digitalcameraworld.com/wp-content/uploads/sites/123/2014/01/Creative_photography_composition_tutorial_DCM147.shoot_core.BuachailleP603.jpg"></li> <li class="slider01"><img src="http://www.jssor.com/img/home/03.jpg"></li> <li class="slider01"><img src="http://www.gettyimages.com/gi-resources/images/CreativeImages/Hero-527920799.jpg"></li> </ul> </div><!-- /#slider_inner --> </div><!-- /#slider --> 

Keep your sliding functionality in a separate named function say slide and add a capture the interval in a variable and clear it on hover then call the slide function again on mouseout 保持你的滑动功能,在一个单独的命名函数说幻灯片 ,并添加一个捕获的interval在一个变量和清除它在hover ,然后调用slide上再次功能mouseout

DEMO 演示

var $setElm = $('#slider_inner2'),
    fadeSpeed = 4000,
    switchDelay = 8000;
    var interval="";

function slide(){
        $setElm.each(function(){
        var targetObj = $(this);
        var findUl = targetObj.find('ul');
        var findLi = targetObj.find('li');
        var findLiFirst = targetObj.find('li:first');

        findLi.css({display:'block',opacity:'0',zIndex:'99'});
        findLiFirst.css({display:'block',opacity:'1',zIndex:'100'});
          interval = setInterval(function(){
            findUl.find('li:first-child').animate({opacity:'0'},fadeSpeed).next('li').css({zIndex:'100'}).animate({opacity:'1'},fadeSpeed).end().appendTo(findUl).css({zIndex:'99'});
       },switchDelay); //store in a variable to clear later

    });
}
$(function(){
    slide();
    $setElm.on('mouseover',function(){
       clearInterval(interval); //clear interval
    }).on('mouseleave',slide);
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM