首页 > 代码库 > 我写的一个手风琴效果
我写的一个手风琴效果
先看demo
body, dl, dd, ul, li { margin: 0; padding: 0 }dl { width: 500px; margin: 0 auto; overflow: hidden }dt { border-radius: 10px; background: gray; color: #FFF; padding: 10px; margin: 2px 0; cursor: default; transition: background 1s }dd { border-radius: 10px; padding: 0 20px; background: #eee; height: 0; overflow: hidden; }dt:hover { background: #bbb }dd.first { height: auto }ul { list-style: none }
<dl id="test1"> <dt>导航1</dt> <dd class="first"> <ul> <li>111111</li> <li>111111</li> <li>111111</li> </ul> </dd> <dt>导航2</dt> <dd> <ul> <li>222222</li> <li>222222</li> <li>222222</li> </ul> </dd> <dt>导航3</dt> <dd> <ul> <li>3333333</li> <li>3333333</li> <li>3333333</li> </ul> </dd> <dt>导航4</dt> <dd> <ul> <li>4444444</li> <li>4444444</li> <li>4444444</li> </ul> </dd> <dt>导航5</dt> <dd> <ul> <li>5555555</li> <li>5555555</li> <li>5555555</li> </ul> </dd> <dt>导航6</dt> <dd> <ul> <li>6666666</li> <li>6666666</li> <li>6666666</li> </ul> </dd></dl>
(function($){ $.fn.sfq=function(options){ var defaults={ width:500 }, options=$.extend(defaults,options); var $sfq=$(this); $sfq.width(options.width); var dt=$sfq.children("dt"); var dd=$sfq.children("dd"); dt.hover(function(){ var index=dt.index(this); this.timer=setTimeout(function(){ var dHeight=dt.eq(index).next().find("ul").height(); dt.eq(index).next().animate({"height":dHeight},500) .siblings("dd").animate({"height":"0px"},500); },300); },function(){ clearTimeout(this.timer) }) }})(jQuery)$(function(){ $("#test1").sfq({"width":"300"})})
需要方法连缀的话就在闭包中给个返回值 return this
我写的一个手风琴效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。