仅运行一次功能

时间:2012-11-17 22:27:48

标签: jquery animation slider

我希望这只发生一次而不是每当第三张幻灯片等于当前幻灯片时。我该怎么做?将.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'
    });
}​

2 个答案:

答案 0 :(得分: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'
    });   

}

答案 1 :(得分: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'
    });   

}

只需切换一下,看看你是否应该这样做。