轻松实现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 相关文章推荐
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
理解javascript中Map代替循环
Feb 26 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
Sep 01 Javascript
详解使用jest对vue项目进行单元测试
Sep 07 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 Javascript
微信小程序加载机制及运行机制图解
Nov 27 Javascript
开发一个封装iframe的vue组件
Mar 29 Vue.js
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
简单采集了yahoo的一些数据
2007/02/14 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
utf8的编码算法 转载
2006/12/27 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
js实现上传图片预览方法
2016/10/25 Javascript
JS作用域链详解
2017/06/26 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python中str.join()简单用法示例
2018/03/20 Python
机器学习实战之knn算法pandas
2019/06/22 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
python利用platform模块获取系统信息
2020/10/09 Python
浅析python实现动态规划背包问题
2020/12/31 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
采购人员的个人自我评价
2014/01/16 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
九九重阳节标语
2014/10/07 职场文书
建筑横幅标语
2014/10/09 职场文书