悬停以扩展一个分区并收缩同一行中的另一个分区

时间:2013-02-05 18:21:13

标签: jquery css html jquery-animate

我正在一个网站上工作,每行有2个div,每个占45%。我想设置它,这样如果你将鼠标悬停在DIV上,那么该行中的另一个DIV会随着悬停的DIV扩展而缩小,然后当悬停离开时它们会恢复。缩小的DIV可以在行中悬停的DIV之前或之后,这就是我被卡住的地方。

HTML将在下面,一遍又一遍地重复:

<div class="row">
    <div class="cell upcoming">
        <img src="stills/press/press-logo-gdc2013.jpg" class="general"><p class="one">Panelist - Game Developers Conference 2013</p>
        <p class="two">[Panel Name TBD]</p>
        <p class="three"><b>Panel Date/Location:</b> [TBD] on March 25-29, 2013 at GDC (San Francisco, California)</p>
        <p class="three"><b>Panelists:</b> [TBD]</p>
        <p class="three"><b>Panel Blurb:</b> [TBD]</p>
    </div>

    <div class="cell upcoming">
        <img src="stills/press/press-logo-wizard-world-st-louis.jpg" class="general"><p class="one">Panelist - Wizard World St. Louis 2013</p>
        <p class="two">[Panel Name TBD]</p>
        <p class="three"><b>Panel Date/Location:</b> [TBD] on March 22-24, 2013 at Wizard World (St. Louis, Missouri)</p>
        <p class="three"><b>Panelists:</b> [TBD]</p>
        <p class="three"><b>Panel Blurb:</b> [TBD]</p>
    </div>
</div>

“row”没有CSS,但“cell”的CSS是

div.cell { position:relative; margin:2px; float:left; width:45%; text-align:justify; vertical-align:top; border:2px solid; padding:10px; border-radius:25px; -moz-border-radius:25px; }

并且部分JQUERY是这样的:

 $('.cell')
    .on('mouseenter', function(){
        $(this).animate ({width:"75%"},"slow);
    })
    .on('mouseleave', function(){
        $(this).animate ({width:"45%"},"slow);
    });

当然,我希望“行”中的另一个“单元格”(左边或右边)缩小,另一个正在增长,但我不知道如何确定“其他DIV”的标识符在那一行“或同时获得2件动画。

非常感谢帮助!

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用siblings()来获取其他.cell元素。

$('.cell')
    .on('mouseenter', function(){
        $(this).animate ({width:"75%"},"slow").siblings('.cell').animate({'width': '15%'}, "slow");
    })
    .on('mouseleave', function(){
        $(this).add($(this).siblings('.cell')).animate ({width:"45%"},"slow");
    });

答案 1 :(得分:0)