轻松实现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 技巧小结
Apr 02 Javascript
Javascript new关键字的玄机 以及其它
Aug 25 Javascript
JavaScript实现按Ctrl键打开新页面
Sep 04 Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 Javascript
javascript实现的网站访问量统计代码
Dec 20 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
vue-resouce设置请求头的三种方法
Sep 12 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
angular使用md5,CryptoJS des加密的方法
Jun 03 Javascript
AJAX XMLHttpRequest对象创建使用详解
Aug 20 Javascript
js canvas实现俄罗斯方块
Oct 11 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
文件上传程序的全部源码
2006/10/09 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
python颜色随机生成器的实例代码
2020/01/10 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
新法人代表任命书
2014/06/06 职场文书
美术课外活动总结
2014/07/08 职场文书
未婚证明书模板
2014/10/08 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
企业百日安全活动总结
2015/05/07 职场文书
经营场所证明范本
2015/06/19 职场文书
任命书格式范文
2015/09/22 职场文书