亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JS動畫效果

vivian Web前端工程師
難度初級
時長 2小時 8分
學習人數
綜合評分9.60
537人評價 查看評價
9.8 內容實用
9.6 簡潔易懂
9.4 邏輯清晰
1.flag要放在setInterval回調函數外面聲明并初始化為false
2.在setInterval回調函數開頭判斷flag,false表示動畫沒有執行完,true表示動畫執行完畢需要關閉定時器
3.如果動畫沒有執行完,則在for..in..循環外將flag置為true,并在循環中分別判斷每個動畫是否完畢,完畢則不做任何動作,未完畢則執行動畫并將flag置為false
還有就是speed的賦值部分可以拿到定時器外面,計算一次就好了,放在定時器里面那次數該多多少呀
老師那個邊界檢驗還是存在跟之前一樣的問題。
1判斷界限的時候如果是==的話,假如運動速度不是整數或者換成不能被界限值整除的數,會一直運動下去,造成邊界判斷失效,所以判斷界限時要用>=或者<=,所以mouseover和mouseout的時候兩個函數不能如此簡單的整合,加上邊界判斷,可能還沒有分開寫簡單;2.考慮到事件冒泡,建議用mouseenter和mouseleave.
我到希望老師能給出代碼,不然很多壓根不理解,有代碼想學好的就不會去抄
clearInterval(timer)其他的都明白,唯獨這個不明白 剛剛進入startmove()函數,這個的作用和效果不太明白
都是障眼法
要自己彈一彈
上頭說的補上一個else來改flag的值為true是有問題的,只要最后一個到達了就會清除了 同樣是有bug!
為毛我都回調函數不執行。。。
一招在手,天下我有的feel
幾經折騰后發現里面的局部變量和全局變量有點搞頭!
haha</textarea><textarea>haha
1. flag要放在for-in里面
2. if(flag){...} 要放在for-in外面,setInterval里面。

求贊,謝謝
function startMove(obj,goal){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var speed=(goal-obj.offsetWidth)/8
speed=speed>0?Math.ceil(speed):Math.floor(speed);
if (goal==obj.offsetWidth) {
clearInterval(obj.timer);}
else{obj.style.width=obj.offsetWidth+speed+'px';}
},30)}
課程須知
1.您至少已經具備JavaSript的知識。2.您已經具備一些開發經驗。
老師告訴你能學到什么?
1.使用定時器實現簡單動畫。2.如何一步步封裝庫。2.培養編程的思想。

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消