zoukankan      html  css  js  c++  java
  • 导航条菜单的制作 滑动缓慢

    <!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>动画菜单</title>
    <style type="text/css">
    * { margin: 0; padding: 0; font-size: 14px; }
    a { color: #333; text-decoration: none }
    ul{ list-style: none; }
    .nav {height: 30px; border-bottom: 5px solid #F60; margin-left:50px; 600px;}
    .nav li { float: left; position:relative; height:30px; 120px }
    .nav li a { display: block; height: 30px; text-align: center; line-height: 30px; 120px; background: #efefef; margin-left: 1px; }
    .subNav{ position:absolute; top:30px; left:0; 120px; height:0; overflow:hidden}
    .subNav li a{ background:#ddd }
    .subNav li a:hover{ background:#efefef}
    </style>
    <script>
    window.onload=function(){
    var aLi=document.getElementsByTagName('li');
    for(var i=0; i<aLi.length; i++){
    aLi[i].onmouseover=function(){
    //鼠标经过一级菜单,二级菜单动画下拉显示出来
    var ul=this.getElementsByTagName('ul')[0];

    if(ul!=null){
    startMove(ul,'height',120);
    }
    }
    //鼠标离开菜单,二级菜单动画收缩起来。
    aLi[i].onmouseout=function(){
    var ul=this.getElementsByTagName('ul')[0];
    if(ul!=null){
    startMove(ul,'height',0);
    }

    }
    }
    }
    function startMove(obj,attr,iTarget,fn){
    clearInterval(obj.timer);
    obj.timer=setInterval(function(){
    //取当前值
    var icur=0;
    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){
    fn();
    }
    }else{
    if(attr == 'opacity'){//透明度
    obj.style.filter='alpha(opactiy:'+(icur + speed)+')';//IE
    obj.style.opacity=(icur + speed)/100;//火狐(透明度满值为1)
    }else{
    obj.style[attr]= icur +speed+'px'; //当前值加10
    }
    }
    },30)
    }
    function getStyle(obj,attr){
    if(obj.currentStyle){
    return obj.currentStyle[attr];//IE
    }else{
    return getComputedStyle(obj,false)[attr];
    }
    }

    </script>
    </head>
    <body>
    <ul class="nav">
    <li><a href="#">一级菜单</a>
    <ul class="subNav">
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    </ul>
    </li>
    <li><a href="#">一级菜单</a>
    <ul class="subNav">
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    <li><a href="#">二级菜单</a></li>
    </ul>
    </li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
    <li><a href="#">一级菜单</a></li>
    </ul>
    </body>
    </html>

  • 相关阅读:
    甲午年总结
    浅谈数字营销
    机器学习笔记
    上海GDG活动有感
    我也谈谈游戏
    CSS3新增属性
    js事件详解
    DOM与BOM相关操作
    JS基础知识
    js数据类型
  • 原文地址:https://www.cnblogs.com/xyw521520/p/5373225.html
Copyright © 2011-2022 走看看