我目前正在使用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);
}
});
有人知道这段代码有什么问题吗?
答案 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);
});