账号通
    

账号  

密码  

4409

查看

10

回复
主题:从下拉菜单教程开始 [收藏主题] 转到:  
jxz_211 当前离线

340

主题

0

广播

1

粉丝
添加关注
级别:三年级

用户积分:3974 分
登录次数:356 次
注册时间:2008/6/12
最后登录:2011/4/23
jxz_211 发表于:2011/4/9 5:55:20   | 只看该作者 查看该作者主题 楼主 
科汛在线商城系统(NET)

 下载信息  [文件大小:38.45 KB 下载次数: 次]
点击下载文件:下拉菜单

看到论坛有不少人问下拉菜单怎么做,不由得想起了以前刚进论坛的自己,觉得有必要写点什么来,因此费了点心思做了一个简单的教程,希望能对一些朋友有所帮助。

【一】PHOTOSHOP作图(这步可跳过)

     1.Ctrl+N,新建文档,设置高宽为800*28[假设导航条的高度和宽度是这么多,下面实际做的是1000*28]。

     2.工具面板——>图形工具(U)——>圆角矩形,设置半径为5px,然后在文档中画下图形,拉满。

     3.双击该形状图层,设置样式选项:

         (1)渐变叠加——>线性。颜色从上大小为#facdac,#f67a0d,#ff6e02;

         (2)描边——>内部——>大小2px——>填充选项设为线性——>迸发状,然后将颜色渐变从外到内设为#ff6c00,fff0df。

     4.Ctrl+M,点击形状图层,得到形状图层的选区,然后点工具面板——>选区(M),将选项改为“与选区交叉”,随后拉一个矩形选框,纵向位置为居中靠上,横向拉满,随后得到与圆角矩形选区交叉的部分,紧接着,在菜单选项中找到——>选择(s)——>修改——>收缩2px,将得到的选区转换成图层,并填充颜色为#e9771a,这样一个简单的导航条图形就制作成功了。(见附件中的PSD文件)。  

【二】切图(如何切,很重要)

      在切图时经常要考虑到的几个问题是:

      1.如何切可以使用更小的图片;

      2.如何切能使得代码的灵活性更大;

      3.如何才能和要实现的某些特殊效果对接起来。

      依据以上原则,对于一个圆角矩形的导航条,我们通常可以有三种切法:

      1.整切——就是整个切成一个背景图片,优点是省事,快速,缺点是缺乏灵活性。

      2.分切——分成左中右三部分,左右背景靠不同的标签的背景实现,中间部分通过平铺实现,优点是比较灵活,(因为中间可变,导航条整长就不受限制了)可能使得图片容量变小,缺点是费时一点。

      3.定位切——配合页面其它部分的背景图,放置在一整张图片中,如腾讯,网易等网站的首页就是这样做的(这样做的好处相当明显,它可以极大地减少整个背景图片的大小,使得页面在渲染时能够变得十分快速,唯一的缺憾是对于平铺类型的背景图无法实现,只能将整个平铺图片都放在背景图中,增大了图片的大小和占用空间。呵呵,有点跑题了)。

  限于需要,我这里采用的第二种。

【三】构造代码  

     构造好的代码将极大的减省你做出效果的复杂性,所以在这个方面你应该多学习,如果你将CSS知识和JS知识掌握得很好,你就能写出十分简洁又明了的代码了。好了,我这里简单的把代码粘出来。

  1. <div class="nav-wrap">

  2.    <div id="navA" class="nav">
  3.      <ul class="cate-root">
  4.       <li class="cate-1 cur">
  5.          <a href="" class="root">首页</a>
  6.    </li>
  7.       <li class="cate-2">
  8.          <a href="" class="root">新闻</a>
  9.       <div class="cate-sub">
  10.             <a href="">国际</a><span>|</span><a href="">国内</a><span>|</span><a href="">军事</a>
  11.       </div>
  12.    </li>
  13.    <li class="cate-3">
  14.          <a href="" class="root">软件</a>
  15.       <div class="cate-sub">
  16.             <a href="">图形图像</a><span>|</span><a href="">网页制作</a><span>|</span><a href="">FTP上传</a>
  17.       </div>
  18.    </li>
  19.    <li class="cate-4">
  20.          <a href="" class="root">图片</a>
  21.       <div class="cate-sub">
  22.             <a href="">风景名胜</a><span>|</span><a href="">婚纱摄影</a><span>|</span><a href="">人物写真</a><span>|</span><a href="">素描</a>
  23.       </div>
  24.    </li>
  25.    <li class="cate-5">
  26.          <a href="" class="root">财经</a>
  27.       <div class="cate-sub">
  28.             <a href="">股市</a><span>|</span><a href="">基金</a>
  29.       </div>
  30.    </li>
  31.    <li class="cate-6">
  32.          <a href="" class="root">娱乐</a>
  33.       <div class="cate-sub">
  34.             <a href="">股市</a><span>|</span><a href="">基金</a>
  35.       </div>
  36.    </li>
  37.    <li class="cate-7">
  38.          <a href="" class="root">情感</a>
  39.       <div class="cate-sub">
  40.             <a href="">股市</a><span>|</span><a href="">基金</a>
  41.       </div>
  42.    </li>
  43.    <li class="cate-8">
  44.          <a href="" class="root">笑话</a>
  45.       <div class="cate-sub">
  46.             <a href="">股市</a><span>|</span><a href="">基金</a>
  47.       </div>
  48.    </li>
  49.    <li class="cate-9">
  50.          <a href="" class="root">情感</a>
  51.       <div class="cate-sub">
  52.             <a href="">股市</a><span>|</span><a href="">基金</a>
  53.       </div>
  54.    </li>
  55.    <li class="cate-10">
  56.          <a href="" class="root">笑话</a>
  57.       <div class="cate-sub">
  58.             <a href="">股市</a><span>|</span><a href="">基金</a>
  59.       </div>
  60.    </li>
  61.    <li class="cate-11">
  62.          <a href="" class="root">情感</a>
  63.       <div class="cate-sub">
  64.             <a href="">股市</a><span>|</span><a href="">基金</a>
  65.       </div>
  66.    </li>
  67.    <li class="cate-12">
  68.          <a href="" class="root">杂志</a>
  69.       <div class="cate-sub">
  70.             <a href="">读者</a><span>|</span><a href="">知音</a><span>|</span><a href="">时代周刊</a><span>|</span><a href="">意林</a><span>|</span><a href="">花火</a><span>|</span><a href="">法律纵横</a>
  71.       </div>
  72.    </li>
  73.   </ul>
  74. </div>
  75. </div>
  76. <div id="show">
  77.       特别说明:如果导航下面没有其他内容占用空间,IE6下会出现离开主菜单到子菜单时,子菜单消失的情况,大家知道有这样一个问题就行。
  78. </div>

【四】CSS和JS

     做特效,凡是涉及到页面表现,CSS和JS是不能分离的,所以好的HTML代码配合上好的CSS,才能让JS代码也同样变得简洁高效。
  1. CSS代码:

  2. <style type="text/css">

  3. .nav-wrap{
  4.    width:994px;
  5.    margin:0 auto;
  6.    padding-left:6px;
  7.    height:28px;
  8.    background:url(images/nav_1_l.gif) no-repeat left top;
  9.    text-align:left;
  10.    position:relative;
  11.    z-index:9;
  12. }
  13. /*nav-a*/
  14. .nav{
  15. width:988px;
  16. padding-right:6px;
  17. background:url(images/nav_1_r.gif) no-repeat right top;
  18. height:28px;
  19. }
  20. .nav ul.cate-root{
  21.     background:url(images/nav_1_bg.gif) repeat-x;
  22. width:988px;
  23. height:28px;
  24. font-size:14px;
  25. }
  26. .nav ul.cate-root li{
  27.     float:left;
  28. position:relative;
  29. height:28px;
  30. padding-right:10px;
  31. padding-left:12px;
  32. background:url(images/nav_spline.gif) no-repeat left 3px;
  33. }
  34. .nav ul.cate-root li.cate-1{
  35.     padding-left:10px;
  36. background:none;
  37. }
  38. .nav ul.cate-root li a.root{
  39.    display:block;
  40.    padding-left:16px;
  41.    padding-right:16px;
  42.    height:22px;
  43.    padding-top:6px;
  44.    float:left;
  45.    color:#fff;
  46. }
  47. .nav ul.cate-root li a.root:hover{
  48.    color:#843d03;
  49. }
  50. .nav ul.cate-root li div.cate-sub{
  51.     position:absolute;
  52. display:none;
  53. }
  54. .nav ul.cate-root li div.cate-sub a{
  55.     color:#666;
  56. }
  57. .nav ul.cate-root li div.cate-sub{
  58.     left:0px;
  59.     top:27px;
  60. font-size:12px;
  61.     font-family:Tahoma;
  62. border:1px solid #ff9342;
  63. padding:6px 10px;
  64. height:16px;
  65. white-space:nowrap;
  66. background:#fff;
  67. }
  68. #navA ul.cate-root li.hover div.cate-sub{
  69.    display:block;
  70. }
  71. .nav ul.cate-root li.cate-12 div.cate-sub{
  72.    left:-210px;
  73. }
  74. .nav ul.cate-root li div.cate-sub span{
  75.    margin-left:6px;
  76.    margin-right:6px;
  77.    color:#ddd;
  78. }
  79. /**/
  80. #show{
  81.    width:1000px;
  82.    margin:0 auto;
  83.    margin-top:10px;
  84.    position:relative;
  85.    height:40px;
  86.    font-size:12px;
  87. }
  88. </style>

  89. JS代码:

  90. <script language="javascript" type="text/javascript">  

  91. function dropNav(){
  92.    if(document.querySelectorAll){

  93.            //firefox\chrome\opera\safari等浏览器支持,实现CSS3选择器

  94.             var lis=document.querySelectorAll("#navA>ul.cate-root>li");         
  95.    }else{
  96.          //IE浏览器,children你也可以使用getElementsByTagName()等方法来实现,但不如使用XML节点方式获取来得方便快捷,注意这里用children而不是childNodes是因为前者来得高效些,很多浏览器通常把空白也当成childNodes里的一个节点。

  97.           var lis=document.getElementById("navA").children[0].children;

  98.    }

  99.   //循环,为所有的li绑定上事件,通过变换className来实现下拉菜单的隐现,当然你也可以用style.display来设置,但个人觉得不如变换className来得灵活  

  100.    for(var i=0,j=lis.length;i<j;i++){
  101.      var li=lis;     
  102.      li["onmouseover"]=function(){
  103.          var liOrigClass=this.className;
  104.       this.className=liOrigClass+" hover";   
  105.      };
  106.      li["onmouseout"]=function(){
  107.          var liNowClass=this.className;
  108.       this.className=liNowClass.replace(" hover","");   
  109.      };
  110.   }
  111. };
  112.     window.onload=dropNav;  
  113. </script>

如此,一个简单的二级下拉菜单就制作成功了。

PS:如果你有使用jQuery库,js的书写就更简单了,而且你还能实现各种不同的绚丽效果。

  1. <script language="javascript" src="js/jquery-1.5.2.min.js"></script>

  2. <script language="javascript" type="text/javascript">  
  3. $(function(){
  4.     //使用库可以将菜单做得更绚丽
  5.     $("#navB>ul>li").hover(function(){
  6.        $(this).children("div.cate-sub").fadeIn(500);
  7. },function(){
  8.        $(this).children("div.cate-sub").fadeOut("fast");
  9. });
  10. });
  11. </script>

当然,我们更大的期待是IE9早点遍及,其它IE老版本(特别是IE6)早点被淘汰,这样我们就可以使用CSS3来实现下拉导航了,它的好处不言而喻,因为你根本不需要使用到JS。

  1. <style type="text/css">

  2. CSS代码:

  3. /*使用多background 比上面少了一层标签嵌套*/
  4. #navC{
  5.    width:1000px;
  6.    margin:0 auto;
  7.    margin-top:10px;
  8.    background:url(images/nav_1_l.gif) no-repeat left top,
  9.    url(images/nav_1_r.gif) no-repeat right top,
  10.    url(images/nav_1_bg.gif) repeat-x;
  11.    height:28px;
  12.    font-size:14px;
  13. }
  14. #navC ul.cate-root li{
  15.     float:left;
  16. position:relative;
  17. height:28px;
  18. padding-right:10px;
  19. padding-left:12px;
  20. background:url(images/nav_spline.gif) no-repeat left 3px;
  21. }
  22. #navC ul.cate-root li.cate-1{
  23.     padding-left:10px;
  24. background:none;
  25. }
  26. #navC ul.cate-root li a.root{
  27.    display:block;
  28.    padding-left:16px;
  29.    padding-right:16px;
  30.    height:22px;
  31.    padding-top:6px;
  32.    float:left;
  33.    color:#fff;
  34. }
  35. #navC ul.cate-root li a.root:hover{
  36.    color:#843d03;
  37. }
  38. #navC ul.cate-root li div.cate-sub{
  39.     position:absolute;
  40. display:none;
  41. }
  42. #navC ul.cate-root li div.cate-sub a{
  43.     color:#666;
  44. }
  45. #navC ul.cate-root li div.cate-sub{
  46.     left:0px;
  47.     top:27px;
  48. font-size:12px;
  49.     font-family:Tahoma;
  50. border:1px solid #ff9342;
  51. padding:6px 10px;
  52. height:16px;
  53. white-space:nowrap;
  54. background:#fff;
  55. }
  56. /*使用了:hover伪类-关键*/
  57. #navC ul.cate-root li:hover div.cate-sub{
  58.    display:block;
  59. }
  60. #navC ul.cate-root li.cate-12 div.cate-sub{
  61.    left:-210px;
  62. }
  63. #navC ul.cate-root li div.cate-sub span{
  64.    margin-left:6px;
  65.    margin-right:6px;
  66.    color:#ddd;
  67. }
  68. </style>

  69. HTML代码:

  70. <div id="navC">

  71.      <ul class="cate-root">
  72.       <li class="cate-1 cur">
  73.          <a href="" class="root">首页</a>
  74.    </li>
  75.       <li class="cate-2">
  76.          <a href="" class="root">新闻</a>
  77.       <div class="cate-sub">
  78.             <a href="">国际</a><span>|</span><a href="">国内</a><span>|</span><a href="">军事</a>
  79.       </div>
  80.    </li>
  81.    <li class="cate-3">
  82.          <a href="" class="root">软件</a>
  83.       <div class="cate-sub">
  84.             <a href="">图形图像</a><span>|</span><a href="">网页制作</a><span>|</span><a href="">FTP上传</a>
  85.       </div>
  86.    </li>
  87.    <li class="cate-4">
  88.          <a href="" class="root">图片</a>
  89.       <div class="cate-sub">
  90.             <a href="">风景名胜</a><span>|</span><a href="">婚纱摄影</a><span>|</span><a href="">人物写真</a><span>|</span><a href="">素描</a>
  91.       </div>
  92.    </li>
  93.    <li class="cate-5">
  94.          <a href="" class="root">财经</a>
  95.       <div class="cate-sub">
  96.             <a href="">股市</a><span>|</span><a href="">基金</a>
  97.       </div>
  98.    </li>
  99.    <li class="cate-6">
  100.          <a href="" class="root">娱乐</a>
  101.       <div class="cate-sub">
  102.             <a href="">股市</a><span>|</span><a href="">基金</a>
  103.       </div>
  104.    </li>
  105.    <li class="cate-7">
  106.          <a href="" class="root">情感</a>
  107.       <div class="cate-sub">
  108.             <a href="">股市</a><span>|</span><a href="">基金</a>
  109.       </div>
  110.    </li>
  111.    <li class="cate-8">
  112.          <a href="" class="root">笑话</a>
  113.       <div class="cate-sub">
  114.             <a href="">股市</a><span>|</span><a href="">基金</a>
  115.       </div>
  116.    </li>
  117.    <li class="cate-9">
  118.          <a href="" class="root">情感</a>
  119.       <div class="cate-sub">
  120.             <a href="">股市</a><span>|</span><a href="">基金</a>
  121.       </div>
  122.    </li>
  123.    <li class="cate-10">
  124.          <a href="" class="root">笑话</a>
  125.       <div class="cate-sub">
  126.             <a href="">股市</a><span>|</span><a href="">基金</a>
  127.       </div>
  128.    </li>
  129.    <li class="cate-11">
  130.          <a href="" class="root">情感</a>
  131.       <div class="cate-sub">
  132.             <a href="">股市</a><span>|</span><a href="">基金</a>
  133.       </div>
  134.    </li>
  135.    <li class="cate-12">
  136.          <a href="" class="root">杂志</a>
  137.       <div class="cate-sub">
  138.             <a href="">读者</a><span>|</span><a href="">知音</a><span>|</span><a href="">时代周刊</a><span>|</span><a href="">意林</a><span>|</span><a href="">花火</a><span>|</span><a href="">法律纵横</a>
  139.       </div>
  140.    </li>
  141.   </ul>
  142. </div>

以上教程仅供大家参考,抛砖引玉,希望能对大家有所帮助。     

 
  支持(25) | 反对(25) 回到顶部顶端 回到底部底部
天光水影 当前离线

734

主题

0

广播

3

粉丝
添加关注
级别:六年级

用户积分:1174 分
登录次数:314 次
注册时间:2011/3/25
最后登录:2017/9/18
天光水影 发表于:2011/4/9 8:57:34   | 只看该作者 查看该作者主题 沙发 
 
天光水影
  支持(25) | 反对(24) 回到顶部顶端 回到底部底部
zghbqj 当前离线

23

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:28 分
登录次数:5 次
注册时间:2011/4/8
最后登录:2011/6/4
zghbqj 发表于:2011/4/9 9:46:35   | 只看该作者 查看该作者主题 藤椅 
 
  支持(16) | 反对(13) 回到顶部顶端 回到底部底部
伊某某 当前离线

571

主题

0

广播

3

粉丝
添加关注
级别:五年级

用户积分:2896 分
登录次数:425 次
注册时间:2008/8/1
最后登录:2023/10/24
伊某某 发表于:2011/4/9 11:06:12   | 只看该作者 查看该作者主题 板凳 
 
  支持(13) | 反对(13) 回到顶部顶端 回到底部底部
cn8151 当前离线

817

主题

5

广播

0

粉丝
添加关注
级别:七年级

用户积分:9288 分
登录次数:135 次
注册时间:2010/4/9
最后登录:2016/3/17
cn8151 发表于:2011/4/9 11:32:28   | 只看该作者 查看该作者主题 报纸 
 
  支持(13) | 反对(12) 回到顶部顶端 回到底部底部
sffwztgd 当前离线

592

主题

0

广播

1

粉丝
添加关注
级别:五年级

用户积分:625 分
登录次数:49 次
注册时间:2011/6/22
最后登录:2012/2/16
sffwztgd 发表于:2011/6/30 11:35:27   | 只看该作者 查看该作者主题 地板 
科汛在线网校系统
对不起,该用户所发的帖已全被锁定!
 
  支持(12) | 反对(12) 回到顶部顶端 回到底部底部
john8412 当前离线

77

主题

1

广播

0

粉丝
添加关注
级别:学前班

用户积分:122 分
登录次数:72 次
注册时间:2011/4/19
最后登录:2014/6/16
john8412 发表于:2012/5/22 11:36:58   | 只看该作者 查看该作者主题 7楼 
科汛智能建站系统
怎样和KS的SQL标签结合起来,难度比较大,对我来说
 
  支持(9) | 反对(9) 回到顶部顶端 回到底部底部
sffwzgd 当前离线

3513

主题

0

广播

0

粉丝
添加关注
级别:大三

用户积分:3109 分
登录次数:84 次
注册时间:2011/6/22
最后登录:2015/9/23
sffwzgd 发表于:2012/5/22 14:51:28   | 只看该作者 查看该作者主题 8楼 
科汛在线考试系统(NET)
过来看看   分享下
 
  支持(5) | 反对(2) 回到顶部顶端 回到底部底部
tb9188 当前离线

25

主题

2

广播

0

粉丝
添加关注
级别:学前班

用户积分:330 分
登录次数:8 次
注册时间:2012/12/18
最后登录:2013/1/25
tb9188 发表于:2012/12/18 16:02:34   | 只看该作者 查看该作者主题 9楼 
科汛智能建站系统

代码这么多呀,对我来说,难度真的很大呀

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
zch86212 当前离线

68

主题

1

广播

2

粉丝
添加关注
级别:学前班

用户积分:178 分
登录次数:88 次
注册时间:2012/1/13
最后登录:2022/4/4
zch86212 发表于:2013/8/13 10:41:34   | 只看该作者 查看该作者主题 10楼 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行1.17773秒 powered by KesionCMS 9.0