轻松实现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 bxCarousel实现图片滚动切换效果示例代码
May 15 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
Mar 19 Javascript
jQuery 获取页面li数组并删除不在数组中的key
Aug 02 Javascript
关于Vue.js一些问题和思考学习笔记(2)
Dec 02 Javascript
详解cordova打包成webapp的方法
Oct 18 Javascript
微信小程序实现循环动画效果
Jul 16 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
解决vue admin element noCache设置无效的问题
Nov 12 Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 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 socket的讲解与实例分析
2013/06/13 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Python下载的11种姿势(小结)
2020/11/18 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
区域总监的岗位职责
2013/11/21 职场文书
总经理人事任命书
2014/06/05 职场文书
股东出资证明书范例
2014/10/04 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python