我创建的这个网站的吉祥物很少,我将实现一个“眨眼计时器”,让每个吉祥物眨眼。
我在这里的问题是:我如何在任何语言上实现眨眼和眨眼之间的延迟(以及持续多长时间?)(我可能会使用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之间的值。