在img上设置闪烁动画的时间

时间:2011-12-03 16:40:56

标签: javascript jquery

我正在使用此代码在我的网站上闪烁我的徽标。但是当它在浏览时继续闪烁时会变得很烦人,我怎样才能设置一个时间来让它在页面加载的前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);
});

2 个答案:

答案 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);    

将选择器,动画持续时间和变量名称更改为您喜欢/需要的任何名称。