首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当控件悬停时,jQuery滑块卡在循环中

当控件悬停时,jQuery滑块卡在循环中
EN

Stack Overflow用户
提问于 2015-01-30 21:40:00
回答 1查看 109关注 0票数 0

我有一个简单的自动jQuery滑块,每隔几秒钟就会改变图片,我添加了几个div,当悬停时应该跳到某个幻灯片

这是我的代码

代码语言:javascript
复制
<div class="slider">
  <div class="slide">
    <div id="options">
      <div class="option" onmouseover="show1();">
      </div>
      <div class="option" onmouseover="show2();">
      </div>
      <div class="option" onmouseover="show3();">
      </div>
      <div class="option" onmouseover="show4();">
      </div>
      <div class="option" onmouseover="show5();">
      </div>
    </div>
    <div class="slider">
      <div class="pic" id="pic-1">
        <img src="img/1">
      </div>
      <div class="pic" id="pic-2">
        <img src="img/2">
      </div>
      <div class="pic" id="pic-3">
        <img src="img/3">
      </div>
      <div class="pic" id="pic-4">
        <img src="img/4">
      </div>
      <div class="pic" id="pic-5">
        <img src="img/5">
      </div>
    </div>
  </div>
</div>

    $(document).ready(function(){
    $('.pic').hide();
    i=1;
    function slider(){

    $('#pic-'+i).fadeIn('0').delay(1000).fadeOut('0',function(){
    i=i+1;if(i==6){i=1;}slider();

    });

    }
    slider();
    });
    function show1(){
        $('#pic-1').fadeIn('0').delay(1000).fadeOut('0')
    }
    function show2(){
        $('#pic-2').fadeIn('0').delay(1000).fadeOut('0')
    }
    function show3(){
        $('#pic-3').fadeIn('0').delay(1000).fadeOut('0')
    }
    function show4(){
        $('#pic-4').fadeIn('0').delay(1000).fadeOut('0')
        }
    function show5(){
        $('#pic-5').fadeIn('0').delay(1000).fadeOut('0')
    }

问题是,一开始幻灯片效果很好,直到我悬停一个元素,动画开始循环几次,有没有简单的修复方法,不需要我重新编写它?

EN

回答 1

Stack Overflow用户

发布于 2015-02-04 17:18:33

我已经减少了用于测试它的图像数量,然后你可以添加你想要的图像。

我已经修改了你的html,给div添加了一些自定义属性data-pic。看一看http://jsfiddle.net/jth30720/1/

代码语言:javascript
复制
<div class="slider">
  <div class="slide">
  <div id="options">
    <div class="option" data-pic="pic-1">1</div>
    <div class="option" data-pic="pic-2">2</div>
    <div class="option" data-pic="pic-3">3</div>
</div>
<div class="slider">
  <div class="pic" id="pic-1">
    <img src="http://www.panic.com/blog/wp-content/themes/panic/images/icon_smile2.png">
  </div>
  <div class="pic" id="pic-2">
    <img src="http://www.panic.com/blog/wp-content/themes/panic/images/icon_sad2.png">
  </div>
  <div class="pic" id="pic-3">
    <img src="https://cdn1.iconfinder.com/data/icons/logotypes/32/square-facebook-20.png">
  </div>
</div>

对于脚本,我已经修改了几乎所有的东西。然后,您可以根据需要调整淡入淡出动画的时间。

代码语言:javascript
复制
$(document).ready(function() {
  $('.pic').hide();
  i=1;
  interv = setInterval(slider, 2000);
});
$(".option").hover(
  function() {
    clearInterval(interv);
    $('#'+$(this).attr("data-pic")).fadeIn('0');
  }, function() {
  $('#'+$(this).attr("data-pic")).fadeIn('0').fadeOut('10000',function(){
      interv = setInterval(slider, 2000);
  });
}
);
function slider(){
  $('#pic-'+i).fadeIn('0').fadeOut('10000',function(){
    i=i+1;
    if(i==4) i=1;
});
}

我希望这就是你想要实现的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28237164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档