我正在使用jQuery Background Position插件和jQuery Cycle插件来尝试在幻灯片滚动的同时制作滑块和背景图像动画。这是我到目前为止的示例:
HTML
<div class="container">
<div class="slider">
<div class="pane">
Text asd dddsa sadsad
</div>
<div class="pane">
Text asd dddsa sadsad
</div>
<div class="pane">
Text asd dddsa sadsad
</div>
</div>
<a href="#" id="prev-slide">< Prev</a>
<a href="#" id="next-slide">Next ></a>
</div>
JS
$(function() {
// Animate background when clicking slider arrows
$('#prev-slide').on('click', function(event) {
event.preventDefault();
slideBgForward();
});
$('#next-slide').on('click', function(event) {
event.preventDefault();
slideBgBackward();
});
$('.slider').cycle({
fx : 'scrollHorz',
next : '#next-slide',
prev : '#prev-slide',
before : function(currSlideElement, nextSlideElement, options, forwardFlag) {
if (forwardFlag) {
slideBgBackward();
} else {
slideBgForward();
}
}
});
// Slide background forwards
function slideBgForward() {
$('.container').animate({
backgroundPosition: '-=20% 0'
}, 1500);
}
// Slide background backwards
function slideBgBackward() {
$('.container').animate({
backgroundPosition: '-=20% 0'
}, 1500);
}
});
http://jsfiddle.net/vengiss/gshtZ/
如果我让滑块滚动,它会按预期工作,但是如果我单击下一个/上一个链接在幻灯片中移动,背景动画两次,我相信这是因为在单击链接时和之前调用了幻灯片函数幻灯片开始滚动。有没有办法让它只滚动一次?
提前致谢。