jQuery Timer:在x处开始一个事件,在y处结束

时间:2012-10-15 16:49:57

标签: jquery timer

我正在寻找jQuery(或插件!)中的计时器或函数,这将允许我执行以下操作:"在25秒时,显示按钮x,在45秒显示按钮y ,在55,停止显示x,在65,停止显示y"。

看起来很简单,但我一直空着。我发现很多计时器会发送一个事件,但不会结束或隐藏它。

2 个答案:

答案 0 :(得分:1)

尝试

setTimeout(function() { /* code to show x */ }, 25000);
setTimeout(function() { /* code to show y */ }, 45000);
setTimeout(function() { /* code to hide x */ }, 55000);
setTimeout(function() { /* code to hide y */ }, 65000);

答案 1 :(得分:1)

如果您不介意自己计算事件之间的间隔:

$('#x').delay(25000).show().delay(30000).hide();
$('#y').delay(45000).show().delay(20000).hide();

或者,这是一个我刚刚敲响的插件:

(function($) {
    var t0 = null;

    $.fn.timerAt = function(t) {
        var self = this;
        return this.queue(function(next) {
            var t1 = Date.now();
            var delay = Math.max(0, t0 + t - t1);
            setTimeout(next, delay);
        });
    };

    $.timerReset = function() {
        t0 = Date.now(); // use a shim on older browsers
    };

    $.timerReset();

})(jQuery);

$('#x').timerAt(25000).hide('slow').timerAt(55000).show('fast');
$('#y').timerAt(45000).hide('slow').timerAt(65000).show('fast');​