我發現了一個jQuery腳本在線,它在視口下面創建了多個span元素(每個元素都包含相同的小動畫gif),並以不同的速度將每個元素移動到頁面的頂部,然後重複一遍又一遍地循環。使用jQuery動畫高CPU使用率
目前這佔用了我處理器時間的大約10%。無論如何可以進一步降低CPU使用率嗎?我減少了跨度元素的數量,但這並沒有太大的幫助。
我閱讀了關於設置setInterval
,我已經完成了它並且有所幫助,但我仍然認爲它對於我認爲是簡單的動畫來說太高了。
var easings=[]
$.each($.easing,function(i,v){
if ($.isFunction(v))
easings.push(i)
})
function randomEasing(){
return easings[Math.floor(Math.random()*easings.length)]
}
function cloud(x,y,toX,toY,speed){
var easingUp=randomEasing()
$('<span class="cloud">')
.text(easingUp)
.css({
top:y,
left:x
})
.animate({
top:toX,
left:toY
},{
duration:speed||500,
complete: function(){
$(this).remove();
cloud(x,y,toX,toY,speed)
},
specialEasing: {
top: easingUp,
height: randomEasing()
}
})
.appendTo('body')
}
function randy(from,to){
return Math.floor(Math.random()*(to-from)+from)
}
$(function(){
var bottom=$(window).height()+90
var right=$(window).width()-200
for(var left=50;left<right;left+=50){
cloud(left,bottom+90,-70,"-="+randy(-10,10),randy(10000,24000))
}
})
jQuery.fx.interval = 60;
還有什麼我可以做,以降低CPU使用率,或這是我可以用jQuery做,應該尋找其他的解決方案是最好的?
無可否認,我並不像我在PHP中那樣精通javascript/jquery,但您的建議至少可以幫助我走上正確的軌道。 =)以下是運行代碼的jsfiddle,以瞭解它在網頁上的外觀:http://jsfiddle.net/E8Lh8/2/ – user1342220