我正在为我的网站设置菜单。它已经完成了,只有一个细节让我烦恼。看看下面的代码片段。当我将鼠标悬停在父元素上时,该子元素随着转换而滑落。但是一旦鼠标离开父/子元素,子元素就会消失。当鼠标离开元素时,CSS转换过早结束
我已经确定,当鼠标离开父/子元素时,子元素快速移出视图(left: -9999px;
),在向上滑动转换开始之前。
我该如何做到这一点,当鼠标离开菜单时,项目以相同的过渡类型向后滑动?有没有CSS的解决方案,或者我也必须使用jQuery?
ul {
list-style: none;
padding: 0;
}
li {
width: 180px;
}
#menu ul ul {
left: -9999px;
position: absolute;
background: red none repeat scroll 0 0;
}
#menu li:hover>ul {
left: auto;
}
#menu ul ul li {
height: 0;
transition: height 0.2s ease 0s;
}
#menu ul ul ul {
margin-left: 100%;
top: 0;
}
#menu ul li:hover>ul>li {
height: 32px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav id="menu">
<ul>
<li>Parent Item
<ul>
<li>Child Item
<ul>
<li>Child Child Item</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
这是可能的纯CSS,但你需要使用关键帧动画,而不是转型 - 关键帧,让您一起根据时间表链中的多个动画,这样你就可以有菜单首先向上滑动,然后在向上滑动动画完成后将其左移。 – delinear
(我会帮助一个例子,除了我要去学校跑步,道歉!) – delinear