1

我希望这种情况只发生一次,而不是每次第三张幻灯片都等于当前幻灯片时。我该怎么做?.once() 会为此工作吗?

var currentSlide = current - 1;
var firstSlide = $('#slide1').index();
var secondSlide = $('#slide2').index();
var thirdSlide = $('#slide3').index();
if (thirdSlide == currentSlide) {
    $('img.joyceAnim').flipbook({
        'end': 4,
        'loop': false,
        'fps': 8,
        'mobileStep': 1,
        'images': 'anim/bench/%d.png'
    });
}​
4

2 回答 2

2

.data()当您已经为元素设置一次动画时,您可以在元素上设置一个指示器,然后在再次设置动画之前检查该指示器:

var currentSlide = current-1; 
var firstSlide = $('#slide1').index();
var secondSlide = $('#slide2').index();
var thirdSlide = $('#slide3').index();
var flip = $('img.joyceAnim');
var alreadyFlipped = flip.data("flipped");

if(thirdSlide == currentSlide && !alreadyFlipped){
    flip.data("flipped", true).flipbook({
        'end': 4,
        'loop': false,
        'fps': 8,
        'mobileStep': 1,
        'images': 'anim/bench/%d.png'
    });   

}
于 2012-11-17T23:30:13.393 回答
0
var currentSlide = current-1; 
var firstSlide = $('#slide1').index();
var secondSlide = $('#slide2').index();
var thirdSlide = $('#slide3').index();
var doIt = true;

if((thirdSlide == currentSlide) && doIt){
    doIt = false;
    $('img.joyceAnim').flipbook({
        'end': 4,
        'loop': false,
        'fps': 8,
        'mobileStep': 1,
        'images': 'anim/bench/%d.png'
    });   

}

只需进行切换,看看您是否应该这样做。

于 2012-11-17T22:30:07.923 回答