jQuery galleryview在mouseout上开始自动播放

时间:2013-04-23 13:41:40

标签: javascript jquery galleryview

我目前正在使用GalleryView插件(http://spaceforaname.com/galleryview/)开发网站。一切都很好,除了没有“鼠标输出开始自动播放”选项(相当于停止悬停),所以我试图自己实现一个。当我查看javascript代码时,我可以看到有一个“showNext”方法,我想在用户没有在画廊上进行过一段时间后调用它。这是我正在使用的代码的简短版本(不起作用):

$j(function(){
 sliderr = $j('#productGallery').galleryView({
    transition_speed: 600,
    autoplay: false 
    });

});

$j('.gallery-wrapper').mouseout(function(){

    if (timer == null) {
       timer = setInterval( function(){
          if (counter > 5000) {
             sliderr.galleryView("showNext");
             counter = 0;
          } else
             counter += 1000;
       }, 1000);
    } 
});

有人知道这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

从他们的演示看,我怀疑有更好的方法来做到这一点。在演示中,他们有一个暂停/播放按钮,可以使用他们的startSlideshow()stopSlideShow()功能。我怀疑你会想要使用该功能,因此,你需要使用setTimeout()来代替setInterval()。像这样:

$j('.gallery-wrapper').mouseout(function(){
    timer = setTimeout( function(){
          //note: I'm not sure this is a function of the galleryView object
          //      it might be off of another part of the overall structure
          //      like sliderr.startSlideshow() or something.
          sliderr.galleryView.startSlideshow(); 
    }, 5000); 
});

你可能想要一个相应的mouseover来清除超时:

$j('.gallery-wrapper').mouseover(function(){
    clearTimeout(timer);
});