轻松实现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 相关文章推荐
Prototype Template对象 学习
Jul 19 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
javascript中innerText和innerHTML属性用法实例分析
May 13 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
使用ngrok+express解决本地环境中微信接口调试问题
Feb 26 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
Jul 24 Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 18 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
Discuz! Passport 通行证整合
2008/03/27 PHP
坏狼的PHP学习教程之第1天
2008/06/15 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
使用console进行性能测试
2015/04/27 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
基于Vue过渡状态实例讲解
2017/09/14 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
详解Axios统一错误处理与后置
2018/09/26 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
pyqt4教程之widget使用示例分享
2014/03/07 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
信息服务专业毕业生求职信
2014/03/02 职场文书
本科生求职信
2014/06/17 职场文书
企业读书活动总结
2014/06/30 职场文书
汽车转让协议书范本
2014/12/07 职场文书
师德师风学习材料
2014/12/19 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
小学生教师节广播稿
2015/08/19 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
导游词之西递宏村
2019/12/10 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
nginx 配置指令之location使用详解
2022/05/25 Servers
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android