Jquery 使用内联块 div 的动画不起作用?
Jquery animate with inline-block divs not working?
谁能告诉我我哪里错了或者为什么这段代码不起作用?我认为我正在尝试的很明显,但动画似乎拉低了其他 div。我无法理解正在发生的事情!
$("#optionDoors").click(function() {
$(this).animate({
height: "50px",
lineHeight: "50px"
});
});
* {
margin: 0px;
padding: 0px;
}
body {
margin: 0px;
padding: 0px;
}
div {
box-sizing: border-box;
margin: 0px;
padding: 0px;
}
div#mainContainer {
position: relative;
width: 950px;
height: 1000px;
border: 2px solid green;
margin: 0px auto;
}
#productChoice {
position: relative;
width: 100%;
}
#productChoice div {
display: inline-block;
position: relative;
width: 236.5px;
height: 40px;
text-align: center;
line-height: 40px;
vertical-align: middle;
border-right: 1px solid black;
border-bottom: 1px solid black;
cursor: pointer;
}
#productChoice div:last-child {
border-right: none;
}
<div id='mainContainer'>
<div id='productChoice'>
<div id='optionDoors'>
<span>Option1</span>
</div>
<div>
<span>Option2</span>
</div>
<div>
<span>Option3</span>
</div>
<div>
<span>Option4</span>
</div>
</div>
</div>
这里的例子很清楚发生了什么......https://jsfiddle.net/L6zkxzpn/
问题是 #productChoice div
设置了样式 vertical-align: middle;
。因此,当您增加第一个 div 的尺寸时,所有其他 re-align 本身都会向下,因为 #productChoice 已经增加尺寸以满足其更大的第一个 child。
将此样式更改为vertical-align: top;
以解决问题。
谁能告诉我我哪里错了或者为什么这段代码不起作用?我认为我正在尝试的很明显,但动画似乎拉低了其他 div。我无法理解正在发生的事情!
$("#optionDoors").click(function() {
$(this).animate({
height: "50px",
lineHeight: "50px"
});
});
* {
margin: 0px;
padding: 0px;
}
body {
margin: 0px;
padding: 0px;
}
div {
box-sizing: border-box;
margin: 0px;
padding: 0px;
}
div#mainContainer {
position: relative;
width: 950px;
height: 1000px;
border: 2px solid green;
margin: 0px auto;
}
#productChoice {
position: relative;
width: 100%;
}
#productChoice div {
display: inline-block;
position: relative;
width: 236.5px;
height: 40px;
text-align: center;
line-height: 40px;
vertical-align: middle;
border-right: 1px solid black;
border-bottom: 1px solid black;
cursor: pointer;
}
#productChoice div:last-child {
border-right: none;
}
<div id='mainContainer'>
<div id='productChoice'>
<div id='optionDoors'>
<span>Option1</span>
</div>
<div>
<span>Option2</span>
</div>
<div>
<span>Option3</span>
</div>
<div>
<span>Option4</span>
</div>
</div>
</div>
这里的例子很清楚发生了什么......https://jsfiddle.net/L6zkxzpn/
问题是 #productChoice div
设置了样式 vertical-align: middle;
。因此,当您增加第一个 div 的尺寸时,所有其他 re-align 本身都会向下,因为 #productChoice 已经增加尺寸以满足其更大的第一个 child。
将此样式更改为vertical-align: top;
以解决问题。