我有一个垂直的 div 列表,我在悬停时为每个 div 设置动画。我希望其他人在选定的“成长”时保持相同的位置(我不想这么说,但想想 MacOS Launcher)。我知道如果我使用 JavaScript 循环绝对定位每个人,我可以做到这一点,但我希望这尽可能动态。
想法?
HTML:
<div id="leftMenu">
<div id="lmHome" class="lmSelected"><i class="icon-home icon-2x"></i></div>
<div id="lmSearch"><i class="icon-search icon-2x"></i></div>
<div id="lmFeed"><i class="icon-rss icon-2x"></i></div>
<div id="lmPeople"><i class="icon-group icon-2x"></i></div>
<div id="lmNew"><i class="icon-plus icon-2x"></i></div>
<div id="Div2"><i class="icon-calendar icon-2x"></i></div>
<div id="lmSettings"><i class="icon-cogs icon-2x"></i></div>
<div id="Div1"><i class="icon-question icon-2x"></i></div>
</div>
CSS:
#leftMenu { /* The container for the buttons on the left menu*/
position: absolute;
left: 10px;
padding-top: 10px;
height: auto;
}
#leftMenu div { /* The buttons on the left menu*/
position: relative;
top: 0px;
height: 50px;
width: 50px;
border: 1px solid gray;
text-align: center;
overflow: visible;
}
#leftMenu div i {
position: relative;
top: 12px;
}
#leftMenu div:hover {
}
#leftMenu div:last-child {
border-bottom: 1px solid gray;
}
JavaScript:
$('#leftMenu div').on('mouseenter', function () {
var self = $(this);
self.stop()
.animate({ 'height': '+=10px' }, { duration: 100, queue: false })
.animate({ 'width': '+=10px' }, { duration: 100, queue: false })
.animate({ 'top': '-=5px' }, { duration: 100, queue: false })
});
$('#leftMenu div').on('mouseleave', function () {
var self = $(this);
self.stop()
.animate({ 'height': '-=10px' }, { duration: 400, queue: false })
.animate({ 'width': '-=10px' }, { duration: 400, queue: false })
.animate({ 'top': '+=5px' }, { duration: 400, queue: false })
});