我正在使用此代码在我的网站上闪烁我的徽标。但是当它在浏览时继续闪烁时会变得很烦人,我怎样才能设置一个时间来让它在页面加载的前15秒内闪烁,然后停止?
我正在使用的JS代码:
$(document).ready(
function(){
var t;
const fparam = 100;
const uparam = 100;
window.flickr = function(){
if(Math.round(Math.random())){
$("#logodcoi").css("visibility","hidden");
t = setTimeout('window.unflickr()',uparam);
}
else
t = setTimeout('window.flickr()',fparam);
}
window.unflickr = function(){
if(Math.round(Math.random())){
$("#logodcoi").css("visibility","visible");
t = setTimeout('window.flickr()',fparam);
}
else
t = setTimeout('window.unflickr()',uparam);
}
t = setTimeout('window.flickr()',fparam);
});
答案 0 :(得分:2)
你可以有一个计数器,然后用它来决定是否要设置另一个超时。作为旁注,您不应该向窗口添加函数,然后将字符串传递给setTimeout
。总是只传递函数本身:
$(document).ready(function(){
var t;
var amount = 0;
const fparam = 100;
const uparam = 100;
function timeout(f, t) { // this function delegates setTimeout
if(amount++ < 150) { // and checks the amount already (un)flickered
setTimeout(f, t); // (150 * 100 ms = 15 s)
}
}
var flickr = function(){
if(Math.round(Math.random())){
$("#logodcoi").css("visibility","hidden");
t = timeout(unflickr,uparam);
}
else
t = timeout(flickr,fparam);
};
var unflickr = function(){
if(Math.round(Math.random())){
$("#logodcoi").css("visibility","visible");
t = timeout(flickr,fparam);
}
else
t = timeout(unflickr,uparam);
};
t = timeout(flickr,fparam);
});
答案 1 :(得分:1)
我看到你正在使用jquery,你可以使用以下内容,如果我没记错的话,我在下面使用的所有东西都是1.0以来的jquery,所以你应该很好:
counter = 1;
function hideOrShow(){
$(".classToSelect").animate({"opacity": "toggle"}, 100);
counter = counter +1;
if (counter >= 21) clearInterval(flickerInterval);
}
flickerInterval = setInterval(hideOrShow, 100);
将选择器,动画持续时间和变量名称更改为您喜欢/需要的任何名称。