這是一份正確的代碼,但是我有幾個問題想問下高手.
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html?xmlns="http://www.w3.org/1999/xhtml"> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>導(dǎo)航菜單</title> <style?type="text/css"> *?{?margin:?0;?padding:?0;?font-size:?14px;?} a?{?color:?#333;?text-decoration:?none?} ul?{?list-style:?none;?height:?30px;?border-bottom:?5px?solid?#F60;?margin-top:?20px;?padding-left:?50px;?} ul?li?{?float:?left?} ul?li?a?{?display:?block;?height:?30px;?text-align:?center;?line-height:?30px;?width:120px;?background:?#efefef;?margin-left:?1px;?} a.on,?a:hover?{?background:?#F60;?color:?#fff;?} </style> <script> window.onload=function(){ ????var?aA=document.getElementsByTagName('a'); for(var?i=0;?i<aA.length;?i++){ aA[i].onmouseover=function(){ var?This=this; clearInterval(This.s); This.s=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=160) clearInterval(This.s); },30) } aA[i].onmouseout=function(){ clearInterval(this.s); var?This=this; this.s=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=120){ This.style.width='120px'; clearInterval(this.s); } },30) } } } </script> </head> <body> <ul> ????<li><a?class="on"?href="#">首 頁</a></li> ????<li><a?href="#">新聞快訊</a></li> <li><a?href="#">產(chǎn)品展示</a></li> ????<li><a?href="#">售后服務(wù)</a></li> ????<li><a?href="#">聯(lián)系我們</a></li> </ul> </body> </html>
我發(fā)現(xiàn)后面清除的那段代碼中為什么clearInterval(this.s)里面為什么不能是clearInterval(This.s)我發(fā)現(xiàn)里面的變量名該成后者就只會增加長度不會減少了.那么前面的聲明Var This=this 有什么用呢?說了是調(diào)用,為什么后面清除就只需要this呢?
2016-09-22
真心實(shí)測,有效果
上面三張圖里的代碼都可以,從語法上也是講的通的,不存在沒有效果,不知道樓主說的是什么情況?
2016-09-04
因為你的onmouseout方法里定義的是?this.s=setInterval(function(),所以你后面也有用this.s。。看清楚大小寫