轻松实现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 相关文章推荐
使用javascript过滤html的字符串(注释标记法)
Jul 08 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
js简单抽奖代码
Jan 16 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 Javascript
jQuery包裹节点用法完整示例
Sep 13 Javascript
Bootstrap基本组件学习笔记之面板(14)
Dec 08 Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
vue设置默认首页的操作
Aug 12 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+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
python判断字符串是否是json格式方法分享
2017/11/07 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
学校门卫工作职责
2013/12/07 职场文书
幼儿教师工作感言
2014/02/14 职场文书
收款委托书
2014/10/14 职场文书
女方离婚起诉书
2015/05/18 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android