settimeoutとsetIntervalを組み合わせてQQのアイコンのフラッシュをシミュレートします


注意:$はjQueryメソッド、$(el).attr(name,[value])は要素のプロパティを設定または返します.

function flashIcon(el, duration){
           if(isNaN(duration))duration = 800;
            $(el).attr("stopflash", "false");
            var handler = window.setInterval(function(){
                    if($(el).attr("stopflash")=="true"){
                            window.clearInterval(handler);
                            return;
                    }
                    el.style.marginLeft = "2px";
                    el.style.marginTop = "2px";
                    window.setTimeout(function(){
                            el.style.marginLeft = "";
                            el.style.marginTop = "";
                    },duration/2);
            }, duration)
    }

function stopFlash(el){
 $(el).attr("stopflash", "true");
}

//  
$("img.icon").each(function(){
    flashIcon(this);
   $(this).one("click",function(){ stopFlash(this);}); //       
})