課程
/前端開發(fā)
/JavaScript
/JS動畫效果
為什么都需要用到,定時器呢,,
2016-08-29
源自:JS動畫效果 4-1
正在回答
定時器不斷刷新,每30ms刷新一次,就調(diào)用一次函數(shù),運動的過程是寬高(等等想要的效果)變化的過程,調(diào)用函數(shù)改變寬高,達到運動效果,30ms刷新一次是因為,人眼能識出卡頓的最低幀數(shù)是30左右,因此30ms約等于30fps。
慕粉3770264 提問者
幫我看看哪里有問題唄
<script>//多物體運動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>
_莫忘初衷_
舉報
通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝
1 回答為什么清空不了定時器呢?
1 回答為什么要把清除定時器放在else中???
2 回答設(shè)定計時器是為什么要將其制空
2 回答定時器沒起到作用啊???、
2 回答為什么要用timer=null,一定要是全局變量嗎?什么時候要用到timer=null呢?有其他類似的情況嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-08-29
定時器不斷刷新,每30ms刷新一次,就調(diào)用一次函數(shù),運動的過程是寬高(等等想要的效果)變化的過程,調(diào)用函數(shù)改變寬高,達到運動效果,30ms刷新一次是因為,人眼能識出卡頓的最低幀數(shù)是30左右,因此30ms約等于30fps。
2016-08-29
幫我看看哪里有問題唄
<script>
//多物體運動
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>