纯css实现苹果手表圆形菜单
时间: 2023-08-05 21:38:17 浏览: 52
可以使用CSS的`transform`和`transition`属性以及`:hover`伪类来实现苹果手表圆形菜单。
首先,需要将每个菜单项用`<div>`元素来表示,并设置好对应的样式,包括位置、大小和背景颜色等。
然后,使用`transform: rotate()`将每个菜单项旋转到对应的位置。同时,使用`transition`属性来设置动画的过渡效果。
最后,使用`transform: scale()`和`:hover`伪类来实现菜单项的放大效果和鼠标悬浮时的动态效果。
以下是一个基本的示例代码:
HTML:
```
<div class="circle-menu">
<div class="menu-item item-1"></div>
<div class="menu-item item-2"></div>
<div class="menu-item item-3"></div>
<div class="menu-item item-4"></div>
<div class="menu-item item-5"></div>
<div class="menu-item item-6"></div>
<div class="menu-item item-7"></div>
<div class="menu-item item-8"></div>
</div>
```
CSS:
```
.circle-menu {
position: relative;
width: 200px;
height: 200px;
border-radius: 50%;
margin: 50px auto;
}
.menu-item {
position: absolute;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #ccc;
text-align: center;
line-height: 50px;
color: #fff;
font-size: 20px;
cursor: pointer;
transition: all .5s ease-in-out;
}
.item-1 {
top: 0;
left: 75px;
}
.item-2 {
top: 25px;
left: 115px;
}
.item-3 {
top: 75px;
left: 140px;
}
.item-4 {
top: 125px;
left: 115px;
}
.item-5 {
top: 150px;
left: 75px;
}
.item-6 {
top: 125px;
left: 35px;
}
.item-7 {
top: 75px;
left: 10px;
}
.item-8 {
top: 25px;
left: 35px;
}
/* 旋转每个菜单项到对应的位置 */
.menu-item {
transform: rotate(45deg);
}
.item-1 {
transform: rotate(0);
}
.item-2 {
transform: rotate(45deg);
}
.item-3 {
transform: rotate(90deg);
}
.item-4 {
transform: rotate(135deg);
}
.item-5 {
transform: rotate(180deg);
}
.item-6 {
transform: rotate(225deg);
}
.item-7 {
transform: rotate(270deg);
}
.item-8 {
transform: rotate(315deg);
}
/* 鼠标悬浮时的放大效果 */
.menu-item:hover {
transform: scale(1.2);
z-index: 1;
}
/* 鼠标悬浮时的动态效果 */
.item-1:hover {
background-color: #c0392b;
}
.item-2:hover {
background-color: #2980b9;
}
.item-3:hover {
background-color: #27ae60;
}
.item-4:hover {
background-color: #f1c40f;
}
.item-5:hover {
background-color: #8e44ad;
}
.item-6:hover {
background-color: #e67e22;
}
.item-7:hover {
background-color: #16a085;
}
.item-8:hover {
background-color: #34495e;
}
```
这段代码实现了一个简单的圆形菜单,可以根据实际需求进行修改和优化。