jQuery制作水平手风琴
发布于
大漠
上回在《如何使用jQuery制作手风琴效果》一文中介绍了使用jQuery制作垂直手风琴效果,今天我们一起在来看一个水平手风琴效果,如下图所示:
在这个例子中,我创建了一个水平手风琴效果,用来展开每个缩略图的提示内容。下面我们来看其具体是如何通过jQuery来实现。
HTML Markup
<ul id="horizontalAccordion"> <li> <a href="#" id="a1"> <img src="https://static.fedev.cn/sites/default/files/rotate.png" width="69" height="69" alt="" /> <p> <strong>旋转rotate</strong> 主要介绍如何使用旋转rotate属性... </p> </a> </li> <li> <a href="#"> <img src="https://static.fedev.cn/sites/default/files/translate-x-y.png" width="69" height="69" alt="" /> <p> <strong>移动translate</strong> 主要介绍如何使用移动translate... </p> </a> </li> <li> <a href="#"> <img src="https://static.fedev.cn/sites/default/files/scale-x-y.png" width="69" height="69" alt="" /> <p> <strong>缩放scale</strong> 主要介绍如何使用缩放scale... </p> </a> </li> </ul>
上面就是我们这个例子需要的HTML结构。我给第一个列表项中的<a>定义了一个id名“a1”,主要是用来设置一个初始宽度,当页面加载时,让其展开。
CSS Code
ul{
list-style: none;
margin: 0;
padding: 0;
}
ul li{
float: left;
padding: 10px;
display: block;
margin-right: 10px;
background: #333;
}
ul li a{
display: block;
overflow: hidden;
height: 75px;
width: 75px;
text-decoration: none;
color: #fff;
}
#a1{
width: 210px;
}
ul li img{
position: absolute;
border: 3px solid #881212;
}
ul li p{
margin: 0;
padding: 0;
width: 120px;
display: block;
margin-left: 85px;
}
ul li strong {
display: block;
}
我们通过样式进行列表的初步美化,这里最关键的是<a>设置了固定的高度和宽度。并设置“overflow:hidden”用来防止p标签中的内容溢出。
jQuery Code
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//定义展开的块
var lastBlock = $('#a1');
//展开的块的宽度
var maxWidth = 210;
//折叠的块的宽度
var minWidth = 75;
$('#horizontalAccordion a').hover(function(){
$(lastBlock).animate(
{width: minWidth + "px"},
{queue:false,duration:400}
);
$(this).animate(
{width:maxWidth + "px"},
{queue:false,duration:400}
);
lastBlock = this;
});
});
</script>
为了在页面中使用jQuery,你首先需要从jQuery官网上下载jQuery版本库,并放入你页面的<head>中或者放在</body>之前。
上面展示的jQuery脚本就是我们实现水平手风琴效果的所有脚本代码。
- 设置了一些初始变量:【lastBlock】代表已经展开的块,我们页面载入时展开的块就是“#a1”;【maxWidth】表示的是展开块的宽度,此例中使用的是“#a1”的宽度“210px”;【minWidth】表示的是折叠块的宽度,我们此处就是<a>定义的宽度“75px”;
- 在<a>绑定一个“.hover()”事件;
- 在“.hover()”事件中调用两次“.animate()”:第一个是将“lastBlock”折叠起来,因为我们页面载入进来时“#a1”是展开的,第二个是鼠标移入的当前<a>元素展开其大小。
有一点需要特别的注意:需要在“.animate()”定义“{queue:false}”。如果将其值设置为“true”时,会致使每一个“.hover()”事件存储起来,从而动画会接二边三的播放。
完成上面的所有步骤后,用jQuery制作水平手风琴就完成了,大家可以点击下面的DEMO,看其效果。
从这个教程中我们学习了如何使用jQuery制作一个水平手风琴的效果。制作这个实例,我们主要应用了jQuery中的“.hover()”事件和“.animate()”函数。如果大家想了解更多有关于这两个函数的使用,可以点击jQuery API文档查阅。如果大家对制作手风琴效果感兴趣的话,还可以同时参考一下前面介绍的《如何使用jQuery制作手风琴效果》,仔细对比水平和垂直的手风琴效果有何不同和相同之处。
如需转载烦请注明出处:W3CPLUS
AIr Jordan Outdoor Basketball Shoes
