轻松实现jquery手风琴效果


Posted in Javascript onJanuary 14, 2016

为大家讲解的JQuery动画特效为手风琴,废话不多说,先看最终实现效果图。

轻松实现jquery手风琴效果

一、实现原理分析

轻松实现jquery手风琴效果

对应的立体图:

轻松实现jquery手风琴效果

二、 HTML代码分析

<body> 
 <div id="container"> 
  <ul id="content"> 
   <li class="first"> 
    <h3>真</h3> 
    <div><img src="images/0.jpg"/></div> 
   </li> 
   <li class="second"> 
    <h3>的</h3> 
    <div><img src="images/1.jpg"/></div> 
   </li> 
   <li class="third"> 
    <h3>爱</h3> 
    <div><img src="images/2.jpg"/></div> 
   </li> 
   <li class="forth"> 
    <h3>你</h3> 
    <div><img src="images/4.jpg"/></div> 
   </li> 
  </ul> 
 </div> 
</body>

1. id为container的div就是上面分析中的红色区域。
2. id为content的ul就是用来存放所有的li。

3. 每个li就是一个红色区域与对应图片的组合。

三、CSS代码分析

*{margin: 0; padding: 0;} 
 
  img{ 
   border:0; 
  } 
 
  #container 
  { 
   width:680px; 
   height: 300px; 
   margin: 100px auto; 
   position: relative; 
   border:3px solid red; 
   overflow: hidden; 
  } 
 
  #container #content 
  { 
   list-style: none; 
  } 
 
  #container #content li{ 
   width:590px; 
   height:300px; 
   position: absolute; 
  } 
 
  #container #content li.second{ 
   left:590px; 
  } 
 
  #container #content li.third{ 
   left:620px; 
  } 
 
  #container #content li.forth{ 
   left:650px; 
  } 
 
  #container #content li h3{ 
   float:left; 
   width: 24px; 
   height:294px; 
   border:3px solid blue; 
   background-color: yellow; 
   cursor: pointer; 
  } 
 
  #container #content li div{ 
   float: left; 
   width: 560px; 
   height:300px; 
  }

1. *和img标签用来去除系统默认的间隙等效果。
2. #container就是在上面分析的可视区域,所以它的尺寸是 680 * 300,并且它是所有子元素的容器,所以它是相对定位(position: relative)。

3. #container #content就是去除掉ul默认的小圆点效果。

4. 所有的li采用绝对定位,并且它们的大小均为 590 * 300, 然后设置后面li的left值,并且设置li的h3(黄色区域)属性漂浮。

当上面所有的css样式设置完毕以后,最终呈现的效果就是分析图中的效果。

四、JQuery代码分析

手风琴的js交互代码其实非常简单,就是实时的改变对应li的绝对位置的left值就可以了,代码如下:

$(function(){ 
 
   $("#container #content li.first h3").mouseenter(function(){ 
    $("#container #content li.second").stop().animate({"left":590}, 1000); 
    $("#container #content li.third").stop().animate({"left":620}, 1000); 
    $("#container #content li.forth").stop().animate({"left":650}, 1000); 
   }); 
 
   $("#container #content li.second h3").mouseenter(function(){ 
    $("#container #content li.second").stop().animate({"left":30}, 1000); 
    $("#container #content li.third").stop().animate({"left":620}, 1000); 
    $("#container #content li.forth").stop().animate({"left":650}, 1000); 
   }); 
 
   $("#container #content li.third h3").mouseenter(function(){ 
    $("#container #content li.second").stop().animate({"left":30}, 1000); 
    $("#container #content li.third").stop().animate({"left":60}, 1000); 
    $("#container #content li.forth").stop().animate({"left":650}, 1000); 
   }); 
 
   $("#container #content li.forth h3").mouseenter(function(){ 
    $("#container #content li.second").stop().animate({"left":30}, 1000); 
    $("#container #content li.third").stop().animate({"left":60}, 1000); 
    $("#container #content li.forth").stop().animate({"left":90}, 1000); 
   }); 
    
  });

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
Sep 28 Javascript
使用JavaScript动态设置样式实现代码(2)
Jan 25 Javascript
js控制table合并具体实现
Feb 20 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
详解JavaScript函数
Dec 01 Javascript
bootstrap响应式工具使用详解
Nov 29 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
May 07 Javascript
如何实现一个webpack模块解析器
Oct 24 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
微信小程序rich-text富文本用法实例分析
May 20 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 #Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 #Javascript
分享网页检测摇一摇实例代码
Jan 14 #Javascript
jquery淡入淡出效果简单实例
Jan 14 #Javascript
jQuery实现的左右移动焦点图效果
Jan 14 #Javascript
详解JavaScript中的构造器Constructor模式
Jan 14 #Javascript
jquery+json实现动态商品内容展示的方法
Jan 14 #Javascript
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
提问的智慧
2006/10/09 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
eclipse php wamp配置教程
2016/06/30 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
js实现分割上传大文件
2016/03/09 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
简明 Python 基础学习教程
2007/02/08 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
python中JWT用户认证的实现
2020/05/18 Python
python中的对数log函数表示及用法
2020/12/09 Python
numpy实现RNN原理实现
2021/03/02 Python
类的返射机制中的包及核心类
2016/09/12 面试题
公务员个人自我评价分享
2013/11/06 职场文书
调解员先进事迹材料
2014/02/07 职场文书
职工运动会感言
2014/02/07 职场文书
道德之星事迹材料
2014/05/03 职场文书
诚信贷款承诺书
2014/05/30 职场文书
个人投资合作协议书
2014/10/12 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
导游词之凤凰古城
2019/10/22 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书