我创建的这个网站的吉祥物很少,我将实现一个“眨眼计时器”,让每个吉祥物眨眼。

我在这里的问题是:我如何在任何语言上实现眨眼和眨眼之间的延迟(以及持续多长时间?)(我可能会使用Javascript,但现在没有关系)。

是否有关于“眨眼算法”的资源?

编辑:我知道如何使用setTimeout和setInterval,这里我的问题更多是关于算法而不是实现本身。

最后结果:

var blink = {
    delay: function() {
        return Math.random() * 8000 + 2000;
    },
    duration: function() {
        return 100 + Math.floor(Math.random() * 100);
    },
    blinkAgain: function() {
        return (Math.random() < .2);
    },
    betweenBliks: function() {
        return blink.duration() / 2;
    }
};

$.fn.blink = function(continueBlinking) {
    var $element = $(this);

    // Star the blink
    $element.addClass('blink');

    // Finish the blink
    setTimeout(function() {
        $element.removeClass('blink');

        // Change of blinking again
        if (blink.blinkAgain()) {
            setTimeout(function() {
                $element.blink(false);
            }, blink.betweenBliks());
        }
    }, blink.duration());

    // Continue blinking?
    if (continueBlinking) {
        setTimeout(function() {
            $element.blink(true);
        }, blink.delay());
    }
};

最佳答案



假设您有一个执行“闪烁”功能的blink函数,则可能只想执行以下操作:

setInterval(blink, 5000); // 5000ms i.e. 5s

如果您希望眨眼时多一点“随机性”,则可以执行以下操作:
function blink() {
    [...] // The blinking
    setTimeout(blink, 5000 + ((Math.random() - 0.5) * 2000));
}

如果我的计算正确的话,如果Math.random()返回的值介于0.0和1.0之间,那么它将以4000到6000ms之间的随机方式调用眨眼函数,因此“Math.random()-0.5”将介于-0.5和0.5之间。该时间2000将导致-1000到1000之间的值。

07-28 07:34