1

3番目のスライドが現在のスライドと同じになるたびにではなく、これが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 に答える