轻松实现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插件tipswindown与hintbox冲突
Nov 05 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
js中top的作用深入剖析
Mar 04 Javascript
JavaScript中的slice()方法使用详解
Jun 06 Javascript
JavaScript中日期的相关操作方法总结
Oct 24 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
Nov 25 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 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
openPNE常用方法分享
2011/11/29 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
php单例模式的简单实现方法
2016/06/10 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
input的focus方法使用
2010/03/13 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
2015/08/25 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
python 文件与目录操作
2008/12/24 Python
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
wxPython的安装与使用教程
2018/08/31 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
2014年度个人总结范文
2015/03/09 职场文书
php实现自动生成验证码的实例讲解
2021/11/17 PHP