我有一个垂直列表的divs,我在悬停时动画每个。我希望其他人保持在同一个位置,而选择的“增长”(我讨厌这么说,但是想到MacOS Launcher)。我知道我可以做到这一点,如果我绝对使用JavaScript循环定位每一个,但我希望这样做尽可能动态。动画div在列表中,保持兄弟姐妹静态
想法?
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 })
});
辉煌,但我该如何保持左侧静态?就像菜单位于屏幕的左边缘一样,我不希望按钮的左侧移出屏幕边界。 –
您可以使用[CSS变换](https://developer.mozilla.org/en-US/docs/Web/CSS/transform)移动事物而不影响同胞。我会让你去发现:) – Greg
嗯,我认为这是转换的起源,但我无法得到它的工作:http://jsfiddle.net/bttah/6/ –