課程
/前端開發(fā)
/JavaScript
/JS動(dòng)畫效果
為什么都需要用到,定時(shí)器呢,,
2016-08-29
源自:JS動(dòng)畫效果 4-1
正在回答
定時(shí)器不斷刷新,每30ms刷新一次,就調(diào)用一次函數(shù),運(yùn)動(dòng)的過程是寬高(等等想要的效果)變化的過程,調(diào)用函數(shù)改變寬高,達(dá)到運(yùn)動(dòng)效果,30ms刷新一次是因?yàn)椋搜勰茏R(shí)出卡頓的最低幀數(shù)是30左右,因此30ms約等于30fps。
慕粉3770264 提問者
幫我看看哪里有問題唄
<script>//多物體運(yùn)動(dòng)window.onload=function(){?? ?var li=document.getElementsByTagName('li');?? ?for(var i=0;i<li.length;i++){?? ??? ?li[i].onmouseover=function(){?? ??? ?startMove4(this,400);?? ??? ?}?? ?li[i].onmouseout=function(){?? ??? ?startMove4(this,200);?? ??? ?}?? ??? ?}?? ??? ?}?? ?var timer=null;?? ?function startMove4(obj,iTarget4){?? ??? ?clearInterval(timer);?? ??? ?timer.setInterval(function(){?? ??? ??? ?speed4=(iTarget4-obj.offsetWidth)/8;?? ??? ??? ?speed4=speed4>0?Math.ceil(speed4):Math.floor(speed4);?? ??? ??? ?if(obj.offsetWidth==iTarget4){?? ??? ??? ??? ?clearInterval(timer);?? ??? ??? ??? ?}?? ??? ??? ?else{?? ??? ??? ??? ?obj.style.width=obj.offsetWidth+speed4+'px';?? ??? ??? ??? ?}?? ??? ??? ?},30)?? ??? ?}</script></head><body><ul>? <li></li>? <li></li>? <li></li></ul>
_莫忘初衷_
舉報(bào)
通過本課程JS動(dòng)畫的學(xué)習(xí),從簡(jiǎn)單動(dòng)畫開始,逐步深入各種動(dòng)畫框架封裝
1 回答為什么清空不了定時(shí)器呢?
1 回答為什么要把清除定時(shí)器放在else中???
2 回答設(shè)定計(jì)時(shí)器是為什么要將其制空
2 回答定時(shí)器沒起到作用?????、
2 回答為什么要用timer=null,一定要是全局變量嗎?什么時(shí)候要用到timer=null呢?有其他類似的情況嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-08-29
定時(shí)器不斷刷新,每30ms刷新一次,就調(diào)用一次函數(shù),運(yùn)動(dòng)的過程是寬高(等等想要的效果)變化的過程,調(diào)用函數(shù)改變寬高,達(dá)到運(yùn)動(dòng)效果,30ms刷新一次是因?yàn)椋搜勰茏R(shí)出卡頓的最低幀數(shù)是30左右,因此30ms約等于30fps。
2016-08-29
幫我看看哪里有問題唄
<script>
//多物體運(yùn)動(dòng)
window.onload=function(){
?? ?var li=document.getElementsByTagName('li');
?? ?for(var i=0;i<li.length;i++){
?? ??? ?li[i].onmouseover=function(){
?? ??? ?startMove4(this,400);
?? ??? ?}
?? ?li[i].onmouseout=function(){
?? ??? ?startMove4(this,200);
?? ??? ?}
?? ??? ?}
?? ?
?? ?}
?? ?var timer=null;
?? ?function startMove4(obj,iTarget4){
?? ??? ?clearInterval(timer);
?? ??? ?timer.setInterval(function(){
?? ??? ??? ?speed4=(iTarget4-obj.offsetWidth)/8;
?? ??? ??? ?speed4=speed4>0?Math.ceil(speed4):Math.floor(speed4);
?? ??? ??? ?if(obj.offsetWidth==iTarget4){
?? ??? ??? ??? ?clearInterval(timer);
?? ??? ??? ??? ?}
?? ??? ??? ?else{
?? ??? ??? ??? ?obj.style.width=obj.offsetWidth+speed4+'px';
?? ??? ??? ??? ?}
?? ??? ??? ?},30)
?? ??? ?}
</script>
</head>
<body>
<ul>
? <li></li>
? <li></li>
? <li></li>
</ul>