【发布时间】:2011-04-10 19:55:49
【问题描述】:
我正在使用 jQuery Cycle 插件的before: 选项来确定用户是通过幻灯片向左还是向右移动,并且我想相应地制作动画(scrollLeft、scrollRight)。
很遗憾,我找不到如何在插件运行时更改插件的选项(过渡效果)。
有什么想法吗?
【问题讨论】:
标签: jquery cycle transition effect
我正在使用 jQuery Cycle 插件的before: 选项来确定用户是通过幻灯片向左还是向右移动,并且我想相应地制作动画(scrollLeft、scrollRight)。
很遗憾,我找不到如何在插件运行时更改插件的选项(过渡效果)。
有什么想法吗?
【问题讨论】:
标签: jquery cycle transition effect
这是更通用的方法:
var $cycler = $( ".cycler" ),
prev = function() { $cycler.cycle( prevIndex, "scrollRight" ); },
next = function() { $cycler.cycle( nextIndex, "scrollLeft" ); };
$cycler.cycle({
fx: 'scrollLeft',
after: function(currSlideElement, nextSlideElement, options) {
slideIndex = options.currSlide;
nextIndex = slideIndex + 1;
prevIndex = slideIndex -1;
if (slideIndex == options.slideCount-1) {
nextIndex = 0;
}
if (slideIndex == 0) {
prevIndex = options.slideCount-1;
}
}
});
$( ".prev" ).bind( "click", prev );
$( ".next" ).bind( "click", next );
您可以将scrollLeft 和scrollRight 更改为您喜欢的任何内容。请注意,我的上一个按钮、下一个按钮和循环器容器分别使用.prev、.next 和.cycler 类。
【讨论】:
听起来这就是你想要的效果:http://jsfiddle.net/zvVcD/
如果是这样,你只需要使用“scrollHorz”效果,然后定义上一个和下一个触发器,如下所示:
$('#s2').cycle({
fx: 'scrollHorz',
speed: 'fast',
timeout: 0,
next: '#next2',
prev: '#prev2'
});
【讨论】: