搜索
 找回密码
 加入

雅虎、网易ajax标签导航效果的实现

miaochi 2007-3-25 15:24:10 1674
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>隐藏/显示层</title>
  6. <style type="text/css">
  7. <!--
  8. body{
  9.         background: #FFF;
  10.         color: #000;
  11.         font: normal 12px 宋体,arial,sans-serif;
  12.         margin: 0;
  13.         padding: 0;
  14.         text-align: left;
  15. }

  16. div,form,ul,ol,li,span,p {
  17.         border: 0;
  18.         margin: 0;
  19.         padding: 0;
  20. }

  21. /*清除float*/
  22. .clear{
  23.         clear: both;
  24.         font-size: 1px;
  25.         visibility: hidden;
  26. }

  27. /*分类标题*/
  28. .class_title{
  29.         margin: 0 auto;
  30.         width: 504px;
  31.         height: 17px;
  32.         border: 1px solid #9EB1C0;
  33.         padding: 1px;
  34.         background:url(http://www.east-dragon.cn/files/sw/images/title_bg.gif);
  35. }

  36. .class_title h2{
  37.         margin: 0;
  38.         padding: 2px 0 2px 18px;
  39.         height: 12px;
  40.         color: #16387C;
  41.         font: bold 13px 宋体,arial,sans-serif;
  42.         cursor:pointer;
  43.         letter-spacing: 2px;
  44.         text-align: left;
  45. }

  46. #tabclass1{
  47. background:url(http://www.east-dragon.cn/files/sw/images/tab_drop1.gif) 6px center no-repeat;
  48. }

  49. /*分类列表(模块一)*/
  50. #class_cnt1{
  51.         background: url(http://www.east-dragon.cn/files/sw/images/class_cntbg.gif) left bottom repeat-x;
  52.         border: solid #9EB1C0;
  53.         border-width: 0 1px 1px 1px;
  54.         height: 287px;
  55.         margin: 0 auto;
  56.         text-align: left;
  57.         width: 506px;
  58.         display: block;
  59.   overflow:hidden;
  60. }

  61. #class_cnt1 p{
  62.    margin:0;
  63.    padding:3px;
  64.    line-height:150%;
  65. }
  66. -->
  67. </style>

  68. <script language="javascript" type="text/javascript">
  69. <!--
  70. //=======================================================
  71. //函数名称:getObject(objectId)
  72. //          参数objectId:控件的ID值
  73. //函数功能:获得控件的ID值
  74. //返 回 值:ture(获得ID值) false(获取ID失败)
  75. //=======================================================
  76. function getObject(objectId) {
  77.     if(document.getElementById && document.getElementById(objectId)) {
  78.         // W3C DOM
  79.         return document.getElementById(objectId);
  80.     } else if (document.all && document.all(objectId)) {
  81.         // MSIE 4 DOM
  82.         return document.all(objectId);
  83.     } else if (document.layers && document.layers[objectId]) {
  84.         // NN 4 DOM.. note: this won't find nested layers
  85.         return document.layers[objectId];
  86.     } else {
  87.         return false;
  88.     }
  89. }

  90. // 显示列表框
  91. function displayList(){   
  92.               var h = getObject('class_cnt1').offsetHeight;  // 内容容器class_cnt1的初始高度(这时高度为:0)
  93.               var max_h = 287; // 容器的最大高度
  94.              
  95.               var anim = function(){                       
  96.                                     h += 50; // 每次递增50像素
  97.                                     //如果增加的高度开始超过容的最大高度
  98.                                     if(h >= max_h){
  99.                             getObject('class_cnt1').style.height = "287px"; // 工期高度为287px(因为我们只希望容器这么高)
  100.                             getObject('tabclass1').style.backgroundImage="url(http://www.east-dragon.cn/files/sw/images/tab_drop1.gif)"; // 让图片标签改变背景               
  101.                             if(tt){window.clearInterval(tt);} // 如果高度在每2毫秒递减,则清楚改行为(如果不清楚,程序将一直自动运行高度每2毫秒递减)
  102.                                     }
  103.                                     else{ // 如果增加中的容器高度没有超过287px
  104.                 getObject('class_cnt1').style.display="block"; // 让容器可见(这样我们才能够看到容器在增高的效果)
  105.                 getObject('class_cnt1').style.height = h + "px"; // 容器高度不断的以50px递增
  106.                                     }
  107.                     }
  108.                           
  109.                           var tt = window.setInterval(anim,2);  // 设置每2毫秒循环一次(每2毫秒,运行一次anim[容器的高度递减50px])       
  110. }

  111. // 隐藏列表框
  112. function hiddenList(){
  113.        var h = getObject('class_cnt1').offsetHeight; // 内容容器class_cnt1的初始高度(这时高度为:287px)
  114.                    var anim = function(){
  115.                              h -= 50; // 每次递减50像素
  116.                              
  117.                              if(h <= 5){
  118.                      getObject('class_cnt1').style.display="none"; // 内容容器不可见(当容器高度小于5px)
  119.                            getObject('tabclass1').style.backgroundImage="url(http://www.east-dragon.cn/files/sw/images/tab_drop2.gif)";
  120.                            if(tt){window.clearInterval(tt);}
  121.                        }
  122.                        else{
  123.                            getObject('class_cnt1').style.height = h + "px"; // // 容器高度不断的以50px递减
  124.                        }
  125.                    }
  126.                      
  127.                    var tt = window.setInterval(anim,2); // 设置每2毫秒循环一次(每2毫秒,运行一次anim[容器的高度递减50px])
  128. }

  129. //=======================================================
  130. //函数名称:showClassList()
  131. //函数功能:隐藏-显示级分类列表框(class_cnt1)
  132. //返 回 值:无
  133. //=======================================================
  134. function showClassList(){
  135.    // 如果内容容器为不可见的display:none
  136.    if(getObject('class_cnt1').style.display == "none"){
  137.        displayList(); // 显示内容框
  138.    }
  139.    else{ // 如果内容容器为可见的display:block
  140.              hiddenList(); // 隐藏内容框
  141.          }
  142. }
  143. -->
  144. </script>
  145. </head>
  146. <body>
  147.         <div class="class_title">
  148.                  <h2 id="tabclass1" onclick="showClassList()" title="隐藏/显示信息">分类信息</h2>                 
  149.         </div>                 
  150.         <div id="class_cnt1">
  151.         <p>
  152.         1111111<br />
  153.         111111111<br />
  154.         1111111<br />
  155.         111111111<br />
  156.         1111111<br />
  157.         111111111<br />
  158.         1111111<br />
  159.         111111111<br />
  160.         1111111<br />
  161.         111111111<br />
  162.         1111111<br />
  163.         111111111<br />
  164.         111111111<br />
  165.         </p>
  166.         </div>
  167. </body>
  168. </html>
复制代码

评分

1

查看全部评分

1 回复

yellky
2007-3-25 15:24:10
点击查看详情
:victory: 效果的确很不错

赞一下

不过我没有看到与ajax相关的代码??
高级模式
游客