Re: [問題] 對於用js做小動畫的疑問

看板Web_Design作者 (沉默是金。)時間15年前 (2010/04/29 01:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《despair96 (.)》之銘言: : 剛開始接觸一點jQuery : 之前一直在找怎樣用js做一些簡單的動態效果 : 主要有一些像是 : 怎樣持續執行同一個動作 : 跟控制動作開始執行的時間的問題 : 從別人的例子看到好像是用 window.setTimeout() 來做 : 這是我嘗試做的一個雲在飄的動態效果 : http://desbear.ctzbook.com/cloud/ : 看起來好像就是會動了 : 但是有一些問題 : 三朵雲CPU使用率就飆高了 : 放這這頁不管..大概20分鐘左右瀏覽器會當掉...(測試每個瀏覽器都是) : 所以我的寫法是不是大大有問題... 你被包裝好的東西給蒙蔽了, 首先 setTimeout 這類元件的成本是很高的,盡量是一次呼叫中進行多個動作。 其次,animate 本身你給他的時間區間短, 他又是一個漸進的效果,他會造成大量的計算, 你又同時間內進行多次animate,難怪cpu會吃重。 最後也最重要的是,你在tran~tran3 的function 內,給的經過時間太短了。 window.setTimeout('tran()',0); 幾乎接近是無窮迴圈了,這更造成先前所述的animate 操作的問題。 另外其實還有一個在你這個case看不出來的隱性因素, dom物件越多,重新計算呈現結果就越慢, 在很肥很多物件的頁面上,這類的慢速移動是很奢侈的。 : 另外有做一個更多物件的 : 但是其實問題都一樣 : 另外就是IE7.8對於png只要有透明度就是會有黑色背景的狀況有解嗎? 用 png 8 : 還有setTimeout的毫秒數設定是不是因為jQuery我設定跑的時間很長 : 也會影響要出場的setTimeout的時間 語焉不詳。@_@ : 我另外設定一些jQuery裡面動畫時間較短的出場時間都設的好長時間才正確 : 最後就是 比如說 : $('.cloud2').animate({left:"500px"},{queue:false,duration:36000}) : .animate({opacity: "0.7"},2000); : queue:false 讓後面一個動作能同時執行 : 但是如果我又設定一個 .animate({opacity: "0"},2000); : 希望他在前一個跑的動畫結束後執行讓雲消失 : 可是運作起來 : 他是沒有管第一個跑的動作執行完 : 就會跟著前一個透明度執行完直接開始執行嗎? : 如果我先執行透明度淡入再開始移動再做淡出雖然就正常了 : 但是這時候對雲做的上下運動就只動了一次就結束了 : 雖然我之後想要做看看怎樣能飄到一邊再飄回來左右飄動(用改變box的寬度移動嗎?) 這段描述很混亂...可能時間晚了看不太懂...XD : 但是想說先解決以上的問題 : 可能問題很蠢但是麻煩幫我解惑一下 : 感謝各位 -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.218.161 ※ 編輯: TonyQ 來自: 220.133.218.161 (04/29 01:06)
文章代碼(AID): #1Bs6g74q (Web_Design)
討論串 (同標題文章)
文章代碼(AID): #1Bs6g74q (Web_Design)