为了账号安全,请及时绑定邮箱和手机立即绑定

这节中为什么/*ul li{float:left;}*/这样写可以变宽复原?而这样在nav li a{ float:left;}里来写,能变宽可没法复原变回原来高度?为什么?求解原理?

*{padding:0; margin:0;}
            a{text-decoration:none; }
            ul{list-style:none; height:30px;
                 padding-left:30px;
                 border-bottom:4px solid #E4393C;
                 margin-top:20px;}
            /*ul li{float:left;}*/    
            .nav li a{display:block;
                    width:120px; height:30px;
                    line-height:30px;
                    text-align:center;
                    background-color:#ccc;
                    margin-left:1px;
                    float:left;
                     }
            .nav .on,.nav a:hover{color:#fff; background-color:#f60; height:30px; line-height:30px; }        
        </style>

window.onload=function(){
                var a1 =document.getElementsByTagName("a");
                for(var i=0; i<a1.length; i++){
                    a1[i].onmouseover=function(){
                        clearInterval(this.timer);
                        var that=this;
                     that.timer=setInterval(function(){
                            that.style.width=that.offsetWidth+8+"px";
                            if(that.offsetWidth>=160){
                                clearInterval(that.timer);
                            }
                        },50)
                    }
                    a1[i].onmouseout=function(){
                        clearInterval(this.timer);
                        var that=this;
                         that.timer=function(){
                            that.style.width=that.offsetWidth-8+"px";
                            if(that.offsetWidth<=120){
                                clearInterval(that.timer);
                            }
                        }
                    }
                    
                }  
                
            }   

正在回答

1 回答

a1[i].onmouseout=function(){

                        clearInterval(this.timer);

                        var that=this;

                         that.timer=setInterval(function(){

                            that.style.width=that.offsetWidth-8+"px";

                            if(that.offsetWidth<=120){

                                clearInterval(that.timer);

                            }

                        },30)

                    }

复原宽的js代码没有开启定时器  加上setInterval就行

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

不懂你意思,我的疑点是但是float:left这个代码,写在 .nav li a里面就没法复原了,放在注释的位置可变宽复原
2017-11-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
导航条菜单的制作
  • 参与学习       123899    人
  • 解答问题       813    个

水平、垂直、圆角导航条菜单,让您的技术探索之路更高效

进入课程

这节中为什么/*ul li{float:left;}*/这样写可以变宽复原?而这样在nav li a{ float:left;}里来写,能变宽可没法复原变回原来高度?为什么?求解原理?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信