将鼠标悬停在暂停图像幻灯片上

时间:2012-05-05 21:48:20

标签: jquery html css web

我有一个有效的图片幻灯片,但我需要这样做,以便当你用鼠标滑过时,幻灯片停在特定的图像,然后当你发布时,再次开始幻灯片放映..这是我的功能:

$(function(){
$(this).mouseover(function(){
    $(this).toggle();
});
$('.fadein img:gt(0)').hide();
setInterval(function(){
  $('.fadein1 :first-child').fadeOut()
     .next('img').fadeIn()
     .end().appendTo('.fadein1');}, 
  3000);
  });

有人可以帮忙吗?现在真的很讨厌我。

3 个答案:

答案 0 :(得分:3)

您需要更改幻灯片功能以更好地跟踪图像,这样的事情应该有效:

$(function(){
    var timer, elm=0, images = $('img', '.fadein1');
    images.not(':first').hide().end().on({
         mouseenter: function() {
             clearInterval(timer);
         },
         mouseleave: function() {
             timer = setInterval(slider, 3000);
         }
   });

   timer = setInterval(slider, 3000);

   function slider() {
     var image = images.eq(elm);
     image.fadeOut();
     elm = elm!=images.length-1 ? image.next('img').index() : 0;
     images.eq(elm).fadeIn();
   }
 });​

FIDDLE

答案 1 :(得分:0)

试试这个......

var interval;

function slide(){
    interval = setInterval(function(){
      $('.fadein1 :first-child').fadeOut()
         .next('img').fadeIn()
         .end().appendTo('.fadein1');}, 
      3000);
  });

  $(function(){

    $('.fadein1').hover(function(){
        clearInterval(interval);
    },function(){
      slide();
    });

    $('.fadein img:gt(0)').hide();
    slide();

  }

答案 2 :(得分:0)

你通常只是设置一个信号量来表示“嘿,我已暂停”你想这样做。然后,在你的setInterval函数中,你说if(paused){return;}并且只有在没有暂停的情况下才会继续。