轻松实现jquery手风琴效果
作者:bea
为大家讲解的JQuery动画特效为手风琴,废话不多说,先看最终实现效果图。 一、实现原理分析 对应的立体图: 二、 HTML代码分析 <body> <div id="container"> <ul id="content"> <li class="first"> <h3>真</h3> <div><img src="ima
为大家讲解的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);
});
});
以上就是本文的全部内容,希望对大家的学习有所帮助。
猜你喜欢
您可能感兴趣的文章:
- Jquery和angularjs获取check框选中的值的方法汇总
- NodeJS实现阿里大鱼短信通知发送
- node.js+express制作网页计算器
- JQuery实现网页右侧随动广告特效
- Validform+layer实现漂亮的表单验证特效
- javascript实现倒计时跳转页面
- jQuery实现图片走马灯效果的原理分析
- JavaScript时间操作之年月日星期级联操作
- input点击后placeholder中的提示消息消失
- jQuery插件imgPreviewQs实现上传图片预览
- 实例详解AngularJS实现无限级联动菜单
- 利用CSS3在Angular中实现动画
- JavaScript程序开发之JS代码放置的位置
- 探讨JavaScript标签位置的存放与功能有无关系
- JavaScript知识点总结之如何提高性能
- jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
- JavaScript焦点事件、鼠标事件和滚轮事件使用详解
- JavaScript提高性能知识点汇总
- 学习JavaScript设计模式之中介者模式