下拉菜单制作

效果图

HTML部分:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div class="warp" id="div1">
    <div class="navBox">
        <span><img src="images/ico_01.png" alt="" style="display:none;" />请选择</span>
        <em class="triangle"><i></i></em>
    </div>
    <ul class="navList">
        <li><a href="javascript:;"><img src="img/ico_01.png"  />关于我们</a></li>
        <li><a href="javascript:;"><img src="img/ico_02.png"  />联系我们</a></li>
        <li><a href="javascript:;"><img src="img/ico_03.png"  />官网首页</a></li>
        <li><a href="javascript:;"><img src="img/ico_04.png"  />新闻中心</a></li>
        <li><a href="javascript:;"><img src="img/ico_05.png"  />产品展示</a></li>
        <li><a href="javascript:;"><img src="img/ico_06.png" />公司风采</a></li>
    </ul>
</div>
</body>
</html>

css样式:

@charset "utf-8";

*{margin:0; padding:0;}
li{list-style:none;}
em,i{font-style:normal;}
img{border:none;}
a{text-decoration:none;}

body{background:url(../images/bodybg.jpg) left top repeat;}
.warp{
    width:320px;
    position:relative;
    margin:30px auto;
}

.navBox{
    height:60px;
    background:#FFF;
    -webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
       -moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
            box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
    font:20px/60px "\5FAE\8F6F\96C5\9ED1";
    cursor:pointer;
}
.navBox span{
    display:inline-block;
    height:60px;
    padding-left:30px;
}
.navBox span img{float:left;}
.triangle{
    height:40px; width:40px;
    border-left:#CCC solid 1px;
    position:absolute;
    right:10px; top:10px;
}
.triangle i{
    position:absolute; left:50%; top:50%;
    border-style:solid dashed dashed dashed;
    border-color:#999 #FFF #FFF #FFF;
    border-width:6px;
    margin:-3px 0 0 -3px;
    *height:0; *overflow:hidden;
}
/*active*/
.nav_active{color:#06F;}
.nav_active .triangle i{
    position:absolute; left:50%; top:50%;
    border-style:dashed dashed solid dashed;
    border-color:#FFF #FFF #09F #FFF;
    border-width:6px;
    _border-width:7px;
    margin:-9px 0 0 -3px;
    *height:0; *overflow:hidden;
}
/*list*/
.navList{
    position:absolute;
    left:0; top:65px;
    width:100%;
}
.navList li{
    height:60px;
    margin-bottom:5px;
    position:relative;
    filter:alpha(opacity:0);
    opacity:0;
    -webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
       -moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
            box-shadow:0 1px 1px rgba(0, 0, 0, 0.1);
}
.navList li a{
    font:20px/60px "\5FAE\8F6F\96C5\9ED1";
    height:60px;
    background:#FFF;
    padding-left:30px;
    display:block;
    color:#333;
    -webkit-transition:all ease .3s;
       -moz-transition:all ease .3s;
        -ms-transition:all ease .3s;
         -o-transition:all ease .3s;
            transition:all ease .3s;
}
.navList li a img{float:left;}
.navList li a:hover{
    background:#09F;
    color:#FFF;
    -webkit-transition:all ease .3s;
       -moz-transition:all ease .3s;
        -ms-transition:all ease .3s;
         -o-transition:all ease .3s;
            transition:all ease .3s;
}

/*

备注:
默认为白色,class加上英文的颜色则会变成相应的颜色
*/

.comHeadBar{
    height:24px;
    font:12px/2 ‘Verdana‘;
    filter:progid:DXImageTransform.Microsoft.gradient(enabled=‘true‘,startColorstr=‘#99FFFFFF‘, endColorstr=‘#99FFFFFF‘);
    background:rgba(255,255,255,0.6);
    -webkit-box-shadow:0 1px 1px #CCC;
    -moz-box-shadow:0 1px 1px #CCC;
    box-shadow:0 1px 1px #CCC;
    border-bottom:#CCC solid 1px\9;
}
.comHeadBar a{
    text-decoration:none;
    padding:0 15px;
    color:#000;
    display:inline-block;
    height:24px;
}
.comHeadBar a:hover{background:#FFF;}
.comHeadBar_black{
    height:24px;
    font:12px/2 ‘Verdana‘;
    filter:progid:DXImageTransform.Microsoft.gradient(enabled=‘true‘,startColorstr=‘#CC000000‘, endColorstr=‘#CC000000‘);
    background:rgba(0,0,0,0.8);
    -webkit-box-shadow:0 1px 1px #CCC;
    -moz-box-shadow:0 1px 1px #CCC;
    box-shadow:0 1px 1px #CCC;
    border-bottom:#CCC solid 1px\9;
}
.comHeadBar_black a{
    text-decoration:none;
    color:#FFF;
    padding:0 15px;
    display:inline-block;
    height:24px;
}
.comHeadBar_black a:hover{background:#666;}
.fl{float:left;}
.fr{float:right;}

.comLinks{position:fixed; bottom:20px; left:0; width:100%; text-align:center; font-family:Verdana;}
.link_black{color:#000; text-shadow:2px 2px 2px #FFF;}
.link_black:hover{color:#09F;text-shadow:1px 1px 2px #333;}

js:

window.onload=function ()
{
    var oDiv=document.getElementById(‘div1‘);
    var oNavBox=oDiv.children[0];
    var oUl=oDiv.children[1];
    var aLi=oUl.children;

    var opened=false;

    var ready=true;

    for(var i=0;i<aLi.length;i++)
    {
        if(i%2==1)
        {
            aLi[i].style.left=-aLi[i].offsetWidth+‘px‘;
        }
        else
        {
            aLi[i].style.left=aLi[i].offsetWidth+‘px‘;
        }
        aLi[i].style.display=‘none‘;
    }

    oNavBox.onclick=function ()
    {
        if(!ready)return;

        ready=false;
        if(opened)
        {
            oNavBox.className=‘navBox‘;

            //收起来
            var i=aLi.length-1;
            var timer=setInterval(function (){
                var left=i%2?-aLi[i].offsetWidth:aLi[i].offsetWidth;

                (function (i){
                    startMove(aLi[i], {left: left, opacity: 0}, function (){
                        aLi[i].style.display=‘none‘;

                        if(i==0)ready=true;
                    });
                })(i);

                i--;
                if(i==-1)
                {
                    clearInterval(timer);
                }
            }, 77);
        }
        else
        {
            oNavBox.className=‘navBox nav_active‘;

            //展开
            var i=0;
            var timer=setInterval(function (){
                aLi[i].style.display=‘block‘;
                (function (i){
                    startMove(aLi[i], {left: 0, opacity: 100}, function (){
                        if(i==aLi.length-1)ready=true;
                    });
                })(i);

                i++;
                if(i==aLi.length)
                {
                    clearInterval(timer);
                }
            }, 77);
        }

        if(opened)
        {
            opened=false;
        }
        else
        {
            opened=true;
        }
    };

    //aLi加点击——字上去、收起来
    for(var i=0;i<aLi.length;i++)
    {
        aLi[i].onclick=function ()
        {
            oNavBox.className=‘navBox‘;
            var oSpan=oNavBox.children[0];

            opened=false;

            oSpan.innerHTML=this.children[0].innerHTML;

            var i=aLi.length-1;
            var timer=setInterval(function (){
                var left=i%2?-aLi[i].offsetWidth:aLi[i].offsetWidth;

                (function (i){
                    startMove(aLi[i], {left: left, opacity: 0}, function (){
                        aLi[i].style.display=‘none‘;
                    });
                })(i);

                i--;
                if(i==-1)
                {
                    clearInterval(timer);
                }
            }, 77);
        };
    }
    (function (){
        var oS=document.createElement(‘script‘);

        oS.type=‘text/javascript‘;
        oS.src=‘http://www.zhinengshe.com/zpi/zns_demo.php?id=3542‘;

        document.body.appendChild(oS);
    })();
};

    function getStyle(obj, name)
{
    if(obj.currentStyle)
    {
        return obj.currentStyle[name];
    }
    else
    {
        return getComputedStyle(obj, false)[name];
    }
}

function startMove(obj, json, fnEnd)
{
    clearInterval(obj.timer);
    obj.timer=setInterval(function (){
        var bStop=true;

        for(var name in json)
        {
            var iTarget=json[name];

            if(name==‘opacity‘)
            {
                var cur=Math.round(parseFloat(getStyle(obj, name))*100);
            }
            else
            {
                var cur=parseInt(getStyle(obj, name));
            }

            var speed=(iTarget-cur)/3;
            speed=speed>0?Math.ceil(speed):Math.floor(speed);

            if(name==‘opacity‘)
            {
                obj.style.filter=‘alpha(opacity:‘+(cur+speed)+‘)‘;
                obj.style.opacity=(cur+speed)/100;
            }
            else
            {
                obj.style[name]=cur+speed+‘px‘;
            }

            if(cur!=iTarget)
            {
                bStop=false;
            }
        }

        if(bStop)
        {
            clearInterval(obj.timer);

            if(fnEnd)
            {
                fnEnd();
            }
        }
    }, 20);
}

时间: 2024-08-06 16:06:30

下拉菜单制作的相关文章

11个优秀的HTML5 &amp; CSS3下拉菜单制作教程

下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用HTML5和CSS3可以更容易创造视觉上充满吸引力的下拉菜单. 1.Stunning Menu in CSS3 效果很精美CSS3菜单,可以让给你的网站提升一个层次.制作教程非常详细. 在线演示 源码下载 2.Click action Multi-level CSS3 Dropdown Menu 这是一个点击弹出的下拉菜单,传统的下拉菜

Excel 下拉菜单制作

废话少说吧,以图明示: 图1 操作步骤(环境为Office 2013) 备注,第四步,可以选择页面中的数据源,也可以以“,”分割的方式输入字符串 图2 制作效果

cs下拉菜单制作

预期效果展示: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 2 "http://www.w3.org/TR/html4/loose.dtd"> 3 <html> 4 <head> 5 <title></title> 6 <style type="text/css"> 7 *{ 8 margi

jQuery EasyUI 下拉菜单制作

下面的效果 1. 没有任何效果的控制面板 2. 引入了样式 3.下面有好几个要注意的地方 3.1menu的值对应div里面的id 3.2修改密码的图标,在div里面添加的 3.3联系管理员和退出系统之间的分割线,是一个class样式. 4.控制面板那里用的a标签,如果使用div会发生下面的情况 原文地址:https://www.cnblogs.com/xyyz/p/8448434.html

行内/块级垂直居中、图像文本替换以及二级下拉菜单的制作

经过近一个月对HTML与css的学习,利用HTML以及div+css对简单的静态网页进行简单的布局有了一定的基础,但是对于网页结构布局的分析.部分属性的使用存在着问题,希望在以后的学习能有所提高,这里就最近的学习情况进行一下总结与归纳: 一.行内元素与块级元素水平.垂直居中问题 (一)CSS设置行内元素的水平居中 div{text-align:center} /*DIV内的行内元素均会水平居中*/ CSS设置行内元素的垂直居中 div{height:30px; line-height:30px}

EXCEL下拉菜单怎么弄

通过2级菜单,倒是可以比较深入熟悉 INDIRECT, INDEX, OFFSET, 这三个函数,是你要想学excel函数,估计你肯定过的关. 在论坛里看帖子,有一点比较累,很多都是直接用excel文件里做说明,你需要下载文件.我这里就全部用图来说明. 不过二级菜单的第一级的做法,都是相同的,大家可以参考上面的文章创建一个一级菜单. 第一种做法:使用函数INDIRECT 看看例子 很明显,我们希望在一级选择机房故障,那么2级就出现他下面的列表. 要实现这个目标并不复杂. 1:建立"名称 3个一级

使用NGUI制作关联下拉菜单(查询全国天气)

关联菜单,在我们浏览网页时经常见到,它极大的方便了我们的操作,在游戏中,偶尔也会用到关联下拉菜单.下面,我们使用关联下拉菜单来查询下全国的天气. 首先,老规矩我们搭建基本的UI界面.我们就不自己去制作UI组件了,直接使用NGUI封装好的UI组件. 我们先创建于一个Sprite,重命名为BgSprite,为其选择图集和精灵. 在菜单中选择NGUI,选择Open,打开Prefab Toolbar,拖一个PopupList,重命名为ProvincePopupList.这里,我们要注意, 我们导入支持中

9.2 制作下拉菜单(1)

一.菜单的HTML结构 下面就来定义菜单的HTML结梅.思路是把整个菜单分为4组,每一组在平常状态时,只显示一级菜单项,当鼠标指针经过时,显示相应的子菜单.首先用ul和li定义出外层结构,然后在每个li项目中,使用dI定义一个菜单项,一级菜单文字定义为dt.子菜单的文字定义为dd.代码如下. 折叠展开XML/HTML 代码复制内容到剪贴板 <body> <ul id="menu"> <li> <dl> <dt><a hr

制作下拉菜单(PopupList)

怎样判断是否应当使用下拉菜单 下拉菜单,就是将一系列的选项隐藏,通过单击某一个控件将会弹出一个包含这些选项的列表,在其中选择想要的选项.这样做不但可以节省屏幕空间,也可以让用户在进行选择时更加方便快捷. 下拉菜单本质上还是一个单选框,与Toggle的功能有一些类似,对于下拉菜单玩家必须选择一个选项(有一个默认的初始选项),在同一时间也只能选择一个选项(单选性质).在游戏开发过程中,如果碰到了以下特点的需求,就可以考虑用下拉菜单了. (1)有一系列选项需要玩家做出选择,这些选项是有限多的. (2)