【发布时间】:2016-11-30 16:52:50
【问题描述】:
这是一个简单的下拉菜单。
不明白为什么带有“过渡”的动画不变换 ul 元素?我已经用 START 和 END 隔离了代码中的问题。
一开始 ul 有 translateY(-2em),悬停时 translateY(0%)
html {
background: #EEEEEE;
}
.container {
background: white;
margin: 5% auto 0 auto;
}
.menu ul {
list-style: none;
margin: 0;
padding: 0;
}
.menu ul li {
display: inline-block;
padding: 15px;
position: relative;
}
/*
////////////
////START///
////////////
*/
.menu ul li ul {
display: none;
transform: translateY(-2em);
/* Why transition does not work? */
transition: transform 300ms ease-in-out 0s;
}
.menu ul li:hover ul {
display: flex;
flex-direction: column;
position: absolute;
background: white;
margin-top: 15px;
width: 100%;
left: 0;
transform: translateY(0%)
}
/*
////////////
////END/////
////////////
*/
.menu ul li:hover ul li:hover {
background: #EEEEEE;
}
<div class="container">
<div class="menu">
<ul>
<li>One
</li>
<li>Hover
<ul ">
<li>0</li>
<li>0</li>
<li>0</li>
<li>0</li>
<li>0</li>
</ul>
</li>
<li>Three</li>
</ul>
</div>
</div>
【问题讨论】:
-
我认为这是因为
display和/或position属性正在改变.. 是您希望菜单向下滑动吗? -
@Toby 是的,我希望它滑动...
-
在下面查看我的答案。
标签: html css transform transition