1

我目前正在使用 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);
    } 
});

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

4

1 回答 1

0

通过查看他们的演示,我怀疑有更好的方法来做到这一点。在演示中,它们有一个暂停/播放按钮,可以使用它们的startSlideshow()stopSlideShow()功能。我怀疑您会想要使用该功能,因此您会想要使用setTimeout()call 而不是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);
});
于 2013-04-23T14:15:10.257 回答