KISSY基础篇乄KISSY之优化实例

本文介绍KISSY框架下拆合菜单的代码优化重构过程,包括测试页面代码、CSS样式和KISSY方法的应用,旨在提升用户体验。
摘要由CSDN通过智能技术生成

KISSY之优化实例

今日任务:拆合菜单代码优化重构

这一节我们主要来看一下拆合菜单进行代码优化重构后的效果。

一、测试页面代码

<div id="content">

   <ul id="menu">

      <li class="menu-list">

         <div><a></a>test0</div>

         <ul>

            <li>test00</li>

            <li>test01</li>

            <li>test02</li>

         </ul>

      </li>

      <li class="menu-list">

         <div><a></a>test1</div>

         <ul>

            <li>test10</li>

            <li>test11</li>

            <li>test12</li>

         </ul>

      </li>

      <li class="menu-list">

         <div><a></a>test2</div>

         <ul>

            <li>test20</li>

            <li>test21</li>

            <li>test22</li>

         </ul>

      </li>

   </ul>

</div>

二、css样式代码

body{

   background-color:#66cccc;

}

#content{

   padding-top:20px;

}

#menu{

   width:180px;

   background-color:#66cccc;

   border:0px solid #CDC8CF;

   border-bottom:none;

}

#menu .menu-list{

   display:inline;

}

#menu .menu-list div{

   height:27px;

   background:url(../img/menu-header-bg.jpg) 0px 0px repeat-x #99F;

   border-bottom:1px solid #CDC8CF;

   padding-top:3px;

   padding-left:10px;

   cursor:pointer;

}

#menu .menu-list div a{

   font-size:14px;font-weight:bold;color:#765D97;

   margin-left:10px;

   background:url(../img/menu-arrow.jpg) 0px -24px no-repeat;padding-left:20px;

}

#menu .menu-list  ul{

   background-color:#FFF;

   border-bottom:1px solid #CDC8CF;

   padding:5px 50px;

   height:90px;

}

#menu .menu-item  ul li{

   padding:2px 20px;

   border:1px solid #FFF;

}

#menu .menu-item  ul li a{

   color:#666;

}

.arrow-down{

   background-position:0px 2px !important;

}

}

 

图片依然是之前的那两张图片,此处不再展示。

三、js之KISSY方法

KISSY.use('node,anim', function (S,Node,Anim) {

   var $=Node.all;

   //隐藏所有子菜单项

   $(".menu-list").each(function(v){

      $(v).children('ul').hide();

      });

   $("#menu div").on('click',function(ev){

      //获得当前menu-listul节点

      var nextMenu = $(ev.target).next();

      //获得当前menu-list节点

      var parentMenu=$(ev.target).parent();

      //获取当前menu-listul节点的display样式属性值

      var display =$(nextMenu).css('display');

      //获取当前menu-listdiv的子节点a

      var children = $(ev.target).children();

      //获得当前menu-list之外的同级menu-list节点

      var sibItems = $(parentMenu).siblings();

      //隐藏其同级节点

      $(sibItems).each(function(v){

         $(v).children('ul').hide();

         $(v).children('div').children().removeClass('arrow-down');

         });

       /*$("#btn-1").on('click',function(){

          //创建一个新的li节点

         alert(nextMenu.text());

          $(nextMenu).append('<li class="new"><a>test13</a></li>');

      });*/

      //根据子菜单的显示情况来判断是否显示子菜单

      if(display == 'none'){

         var h = $(nextMenu).height();

         $(nextMenu).css({height: 0,display: 'block',overflow:'hidden'});

         //此处用了Anim模块,也可用node模块的animate方法:$(nextMenu).animate({'height':h+'px'},1,'elasticOut');

         var anim=Anim($(nextMenu),{'height':h+'px'},1,Anim.Easing.elasticOut);

         anim.run();

         $(children).addClass('arrow-down');

      }else{

         $(nextMenu).slideUp(0.5);

         $(children).removeClass('arrow-down');

      }

      return false;

   });

});

 

来亲自操作,体验一下吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云重影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值