1

我在 JQuery 中做一些滑块。

因此,我从调用转换的间隔开始,并在有人单击“下一步”按钮时将其清除。因为如果他在间隔结束之前点击它,他将没有时间阅读我的滑块......但我希望这个间隔在点击后重新初始化以继续我的幻灯片,如果他没有做任何其他事情。

我试图把它放在我的 .click 函数中的 translate 函数之后,但这会做一些奇怪的事情......点击后我的时间不对。这就像两个间隔同时运行或类似的东西。

任何人都可以对我说在点击转换后“重新启动”它的最优雅的方法?

这是现在的代码:(没有第二次启动间隔)

var jq=jQuery.noConflict();  



jq(document).ready(function() {
    jq('.highlight_container').css('x','0');
});



// Animation Loop

jq(document).ready(function() {
    var checkClick = setInterval(function(){
        if (jq('.highlight_container').css('x') === '-2100px'){
            jq('.highlight_container').transition({
            x: '0px',
            duration: '750',
            easing: 'in-out',
            });
        }
        else {
            jq('.highlight_container').transition({
            x: '-=700px',
            duration: '500',
            easing: 'out',          
            });
        }
    }, 5000);

// Next Button  

    jq('.highlight_next').click(function() {
        clearInterval(checkClick);
        if (jq('.highlight_container').css('x') === '-2100px') {
            jq('.highlight_container').transition({
                x: '+=2100px',
                duration: '750',
                easing: 'in-out',
            });
        }   
        else {
            jq('.highlight_container').transition({
                x: '-=700px',
                duration: '500',
                easing: 'out',
            }); 
        }
    });

// Prev Button      

    jq('.highlight_prev').click(function() {
        clearInterval(checkClick);      
        if (jq('.highlight_container').css('x') === '0px') {
            jq('.highlight_container').transition({
                x: '-=2100px',
                duration: '750',
                easing: 'in-out',
            });
        }   
        else {
            jq('.highlight_container').transition({
                x: '+=700px',
                duration: '500',
                easing: 'out',
            }); 
        }
    });
});

提前感谢任何遮阳篷:]

编辑:

只需在我的 clik 函数末尾添加 setinterval() 函数似乎就可以了。但这很丑陋。

var jq=jQuery.noConflict();  



jq(document).ready(function() {
    jq('.highlight_container').css('x','0');
});



// Animation Loop

jq(document).ready(function() {
    var checkClick = setInterval(function(){
        if (jq('.highlight_container').css('x') === '-2100px'){
            jq('.highlight_container').transition({
            x: '0px',
            duration: '750',
            easing: 'in-out',
            });
        }
        else {
            jq('.highlight_container').transition({
            x: '-=700px',
            duration: '500',
            easing: 'out',          
            });
        }
    }, 5000);

// Next Button  

    jq('.highlight_next').click(function() {
        clearInterval(checkClick);
        if (jq('.highlight_container').css('x') === '-2100px') {
            jq('.highlight_container').transition({
                x: '+=2100px',
                duration: '750',
                easing: 'in-out',
            });
        }   
        else {
            jq('.highlight_container').transition({
                x: '-=700px',
                duration: '500',
                easing: 'out',
            }); 
        }
        checkClick = setInterval(function(){
            if (jq('.highlight_container').css('x') === '-2100px'){
                jq('.highlight_container').transition({
                x: '0px',
                duration: '750',
                easing: 'in-out',
                });
            }
            else {
                jq('.highlight_container').transition({
                x: '-=700px',
                duration: '500',
                easing: 'out',          
                });
            }
        }, 5000);
    });

// Prev Button      

    jq('.highlight_prev').click(function() {
        clearInterval(checkClick);      
        if (jq('.highlight_container').css('x') === '0px') {
            jq('.highlight_container').transition({
                x: '-=2100px',
                duration: '750',
                easing: 'in-out',
            });
        }   
        else {
            jq('.highlight_container').transition({
                x: '+=700px',
                duration: '500',
                easing: 'out',
            }); 
        }
        checkClick = setInterval(function(){
            if (jq('.highlight_container').css('x') === '-2100px'){
                jq('.highlight_container').transition({
                x: '0px',
                duration: '750',
                easing: 'in-out',
                });
            }
            else {
                jq('.highlight_container').transition({
                x: '-=700px',
                duration: '500',
                easing: 'out',          
                });
            }
        }, 5000);
    });
}); 

有没有办法在没有 20 行代码的情况下再次调用相同的函数?

4

0 回答 0