我写的一个手风琴效果

先看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

时间: 2024-10-12 21:23:24

我写的一个手风琴效果的相关文章

Js写的一个倒计时效果实例

我们经常会看到某些网站在注册的时候喜欢搞个按钮倒计时的效果,就是多少秒之后注册这个按钮才可以点击,其目的就是强迫你去看他的注册注意事项,这是一个很实用的效果:另外当我们进行在线考试的时候也必定会碰到答题倒计时的效果,这种倒计时效果是如何实现的呢?下面我们就用Js来实现一个倒计时效果,具体代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf

纯css手风琴效果

1 <!doctype html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>纯css写的一个手风琴效果供大家学习</title> 6 <style> 7 * { margin: 0; padding: 0; } 8 body{background: #eee} 9 .e-warp { width

纯css3实现美化复选框和手风琴效果(详细)

关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉   ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用before模拟选框的框,用after来模拟选框的填充 通过 .magic-checkbox:checked + label:after {/*选框被选中时 显示after填充*/ display: block; } 来确定是否选中复选框,如果checked就把after的显示. 先贴出html的代码 <

用C3中的animation和transform写的一个模仿加载的时动画效果

用用C3中的animation和transform写的一个模仿加载的时动画效果! 不多说直接上代码; html标签部分 <div class="wrap"> <h2>用C3中的animation和transform写的一个模仿加载的时动画效果</h2> <div class="demo"> <div></div> <div></div> <div></d

制作手风琴效果时发现新大陆,好吧,其实是一个bug

手风琴效果代码: <!DOCTYPE html> <html>    <head>         <meta charset="utf-8" />        <title></title>        <style>             body,div{margin: 0;}            .box{height: 100px;}            .item{        

CSS3实现手风琴效果-------Day88

所谓的手风琴效果,就是像手风琴一样拉开关上,至于手风琴啥样,貌似那是我好久之前的回忆了. 不扯那些没用的,说说这个坑人的手风琴效果,先来看下效果图: 这个效果不错吧,也比较常用吧,可怜的我最开始的时候以为自己可以做到这个效果,就用display:none/block写了一排的div,你别说,还真出来那个感觉啦,哈哈,这里当然不会这么做,但是在我看明白之后,发现是一样简单到要吐血,这样的应用当初自己怎么就想不到. 实现过程中的第一个让我没想到,却感觉确实这样才对的地方: <div id="h

基于css3实现手风琴效果

终于在凌晨一点钟逼迫自己写博客.一直想记录自己的前端工程师之路,但毕竟拖延症晚期.因为第一篇随笔,所以多写一点废话吧.刚刚从学校毕业,放弃了一直学习的java,而想从事前端的工作.第一是觉得osgi这类的java框架实在太过笨重和繁琐,也许是真的好用,但也觉得真心不适合我.然后么,也许有点俗,前端真的能做很多华丽花哨的东西出来.到现在也工作一个月了,工资不高,老板不好,但社会毕竟不会总让人满意,没人有手把手教你成大神的话,只能自己努力了.也许会有很多弯路,但做技术的嘛,有磨练总是好事. 对于我个

WPF DEV实现手风琴效果

说明 最近用WPF+DevExpress做项目时,需要做一个类似手风琴的效果,效果的界面如下.因为没有现成的控件,需要自定义模板,所以写了一个Demo和大家分享,项目中可以根据实际情况使用.如果你用不同的方式达到了同样的效果,欢迎一起交流,共同进步. 需求 思路 WPF开发项目的时候,一定要记住一个原则,即数据驱动程序,在WPF中,数据永远是主要的地位,仔细分析上面的数据,可得出如下的结构 Group1 ParmName1  ParmValue1 ParmName2 ParmValue2 Gro

炫酷的手风琴效果

你一定用过书签,也一定给你的书本加过书签,那么你见过书签式的导航吗? 你一定见过手风琴,也一定知道弹奏手风琴时的它的外形变化,那么你见过手风琴式的导航吗? 如果没有,请往下看: 前面的话: 这篇博文先通过Javascript做一个简单的手风琴效果,让大家对手风琴效果有一定的了解:紧接着,我们换jquery做类似的手风琴效果.前面的两个例子都很简单,接下来要放大招了,我想用JQ或是原生的JS去做类似淘宝网中用到的手风琴效果.继续回到书签问题,既然JQ和JS都能实现那么炫酷的效果,我们用CSS3能不