我有两张并排的照片。当用户将鼠标悬停在图像上时,它应该展开。
<a href="#"><div id="skinny"></div></a>
<a href="#"><div id="room9"></div></a>
$('#skinny').hover(function() {
$(this).animate({width: '220px'}, 'fast');
$('#room9').animate({width: '80px'}, 'fast');
}, function() {
$(this).animate({width:'150px'},'fast');
$('#room9').animate({width: '150px'}, 'fast');
});
jsFiddle: http://jsfiddle.net/G4q4q/
它与左图像一起“工作”,但我无法使用右图。我目前的方法效率很低,所以如果你有任何优化建议,请告诉我。
答案 0 :(得分:2)
好吧,我做了一个非常粗略的例子,不允许扩展/多个图像,但你应该明白这个想法。要转到CSS中的clip
元素,只需overflow: hidden
jsFiddle:http://jsfiddle.net/G4q4q/10/
HTML
<div id="wrap">
<a href="#" id="skinny">
<img class="image" src="http://www.theexoticvet.com/images/content_1.jpg" />
</a>
<a href="#" id="room9">
<img class="image" src="http://www.theexoticvet.com/images/content_2.jpg" />
</a>
</div>
CSS
#wrap {
position: relative;
width: 300px;
height: 300px;
overflow: hidden;
}
a {
display: block;
float: left;
top: 0;
width: 50%;
height: 300px;
overflow: hidden;
}
的Javascript
$(function() {
$('a').hover(function() {
$(this).stop().animate({width: '80%'}, 'fast')
$('a').not(this).stop().animate({width: '20%'}, 'fast');
}, function() {
$('a').stop().animate({width:'50%'},'fast');
});
});
编辑笔记:我编辑了这个,使它比我的第一次尝试好一点。
答案 1 :(得分:1)
我花了很多时间为此制作一个更通用的方法 - 所以无论你是否使用它,至少要看看这个。我知道克里斯蒂安会让我重新发明轮子,但是,在他撰写评论之前我就开始了......顺便说一下,你想知道这些东西是如何运作的吗?为此,我在这里创建了这个插件(基督教该死的我):http://jsfiddle.net/hHzkS/
我评论过它......如果在评论中有任何疑问......