请css模仿旋转弹出菜单
时间: 2023-10-01 11:05:38 浏览: 103
仿优酷旋转菜单
5星 · 资源好评率100%
好的,可以使用CSS3中的transition和transform属性来实现旋转弹出菜单效果。下面是一份示例代码:
HTML代码:
```html
<div class="menu">
<button class="menu-btn">菜单</button>
<ul class="menu-list">
<li><a href="#">选项1</a></li>
<li><a href="#">选项2</a></li>
<li><a href="#">选项3</a></li>
<li><a href="#">选项4</a></li>
</ul>
</div>
```
CSS代码:
```css
.menu {
position: relative;
display: inline-block;
}
.menu-btn {
padding: 10px 20px;
border: none;
background-color: #333;
color: #fff;
cursor: pointer;
}
.menu-list {
position: absolute;
top: 100%;
right: 0;
background-color: #fff;
border: 1px solid #ccc;
padding: 10px;
list-style: none;
transform: rotateX(-90deg);
transform-origin: top;
transition: transform 0.3s ease-out;
opacity: 0;
}
.menu:hover .menu-list {
transform: rotateX(0deg);
opacity: 1;
}
```
解释一下代码:
首先,我们将菜单按钮和菜单内容包含在一个`<div>`元素中,并设置该元素的`position`为`relative`。然后,我们给菜单按钮添加样式,包括背景颜色、颜色、边框等。菜单按钮的样式可以根据自己的需要进行调整。
接下来,我们给菜单内容添加样式。我们将菜单内容的`position`设置为`absolute`,并设置`top`和`right`属性使其显示在菜单按钮的下方。我们还设置了菜单内容的背景颜色、边框、内边距和列表样式,使其看起来像一个标准的下拉菜单。
但是,我们并没有让菜单内容默认显示出来。我们使用了CSS3中的`transform`属性,将菜单内容旋转90度,使其不可见。我们还设置了`transform-origin`属性,将旋转的中心点设置在菜单内容的顶部。
接下来,我们使用了CSS3中的`transition`属性,使菜单内容在显示/隐藏时具有动画效果。当鼠标悬停在菜单按钮上时,我们使用CSS伪类`:hover`,将菜单内容的`transform`属性设置为旋转0度,使其显示出来。同时,我们将菜单内容的`opacity`属性设置为1,使其完全可见。
这样就完成了一个简单的旋转弹出菜单效果。您可以根据需要进行调整和扩展。
阅读全文