頁面沒有反應
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title>鏈式運動框架</title> <style?type="text/css"> body,ul,li{ margin:?0; padding:?0; } ul,li{ list-style:?none; } ul?li{ width:?200px; height:?100px; background:?yellow; margin-bottom:?20px; border:?4px?solid?#000; filter:?alpha(opacity:30); opacity:?0.3; } </style> <script?type="js/move.js"></script> <script> window.onload=function(){ var?Li=document.getElementById("li1"); Li.onmouseover=function(){ startMove(Li,"width",400,function(){ startMove(Li,"height",200,function(){ startMove(Li,"opacity",100); }); }); }; Li.onmouseout=function(){ startMove(Li,"opacity",30,function(){ startMove(Li,"height",100,function(){ startMove(Li,"width",200); }); }); }; }; </script> </head> <body> <ul> <li?id="li1"></li> </ul> </body> </html>
js/move.js
function?getStyle(obj,attr){ if(obj.currentStyle){ return?obj.currentStyle[attr]; }else{ return?getComputedStyle(obj,false)[attr]; } } function?startMove(obj,attr,iTarget,fn){ clearInterval(obj.timer); obj.timer=setInterval(function(){ //獲取當前屬性值 var?icur; if(attr=="opacity"){ icur=Math.round(parseFloat(getStyle(obj,attr))*100); }else{ icur=parseInt(getStyle(obj,attr)); } //計算變化速度 var?speed=(iTarget-icur)/8; speed=speed>0?Math.ceil(speed):Math.floor(speed); //檢測停止 if(icur==iTarget){ clearInterval(obj.timer); if(fn){?//當某一動畫結束時,如果有回調函數,則執(zhí)行 fn(); } }else{ if(attr=="opacity"){ obj.style.filter="alpha(opacity:"+(icur+speed)+")"; obj.style.opacity=(icur+speed)/100; }else{ obj.style[attr]=icur+speed+"px"; } } },30); }
外部js的路徑也沒有錯 為什么函數未定義呢
2017-04-15
找到原因了<script?type="js/move.js"></script>應該寫成<script?src="js/move.js"></script>
2017-04-15
我把move.js內的代碼復制到html文檔里script標簽里就可以了,但我把html中js代碼放在move.js里沒反應也沒報錯