2

我有两个并排的图像。当用户将鼠标悬停在图像上时,它应该展开。

HTML:

<a href="#"><div id="skinny"></div></a>
<a href="#"><div id="room9"></div></a>

jQuery:

$('#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/

它与左图像“工作”,但我无法让它与右图像一起工作。我目前的方法效率低下,所以如果您有任何优化建议,请告诉我。

4

2 回答 2

2

好的,我做了一个非常粗略的例子,它不允许扩展/多个图像,但你应该明白了。对于clipCSS 中的元素,只需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');
    });
});

​ 编辑笔记:我编辑了这个,使它比我的第一次尝试好一点。

于 2012-05-21T06:34:24.150 回答
1

我花了很多时间为此制定了一个更通用的方法——所以不管你是否使用它,至少看看这个。我知道克里斯蒂安会因为我重新发明轮子而诅咒我,但是,我早在他写评论之前就开始了……顺便说一句,你想了解这些事情是如何运作的吗?为此,我在这里创建了这个插件(Christian 该死的我):http: //jsfiddle.net/hHzkS/

我已经评论过了...如果有任何疑问请在评论中提问...

于 2012-05-21T07:10:48.913 回答