轻松实现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+json 通用三级联动下拉列表
Apr 19 Javascript
12306验证码破解思路分享
Mar 25 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
javascript弹性运动效果简单实现方法
Jan 08 Javascript
JS实现图片剪裁并预览效果
Aug 12 Javascript
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
vue+canvas实现移动端手写签名
May 21 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
JavaScript 异步时序问题
Nov 20 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
php批量删除cookie的简单实现方法
2015/01/26 PHP
php返回字符串中所有单词的方法
2015/03/09 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Django数据库操作的实例(增删改查)
2017/09/04 Python
Python学生信息管理系统修改版
2018/03/13 Python
python 2.7 检测一个网页是否能正常访问的方法
2018/12/26 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python退出循环的方法
2020/06/18 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
一套.net面试题及答案
2016/11/02 面试题
sort命令的作用和用法
2012/11/04 面试题
2014最新党员违纪检讨书
2014/10/12 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
健康证明
2015/06/19 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏