我对@UModeL的工作很感兴趣,他使用 CSS 技术绘制了一个圆形菜单。
这是他对如何用圆线(不是角)制作三角形的问题的回答:
body {
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
ul {
position: relative;
height: 90vw; max-height: 90vh;
width: 90vh; max-width: 90vw;
padding: 0;
border-radius: 50%;
overflow: hidden;
list-style-type: none;
box-shadow: 0 0 0 5px violet;
}
li {
position: absolute;
display: flex;
justify-content: flex-end;
align-items: flex-end;
height: 50%; width: 50%;
transform-origin: 100% 100%;
transform: rotate(0deg) skewy(30deg);
box-shadow: inset 0 0 15px 0px violet;
background-image: linear-gradient(to right bottom, black, blue);
cursor: pointer;
transition: 0.8s ease-out;
}
li:nth-child(2) { transform: rotate(60deg) skewy(30deg); }
li:nth-child(3) { transform: rotate(120deg) skewy(30deg); }
li:nth-child(4) { transform: rotate(180deg) skewy(30deg); }
li:nth-child(5) { transform: rotate(240deg) skewy(30deg); }
li:nth-child(6) { transform: rotate(300deg) skewy(30deg); }
ul:hover li:not(:hover) {
box-shadow: inset 0 0 3px 0px violet;
transition: 0.6s ease-in-out;
}
li:hover {
box-shadow: inset 0 0 25px 10px violet;
transition: 0.4s ease-in-out;
}
li a {
margin: 20% 15%;
display: flex;
justify-content: center;
align-items: center;
height: 33%; width: 33%;
border-radius: 50%;
font: bold 100%/1em sans-serif;
text-decoration: none;
transform: skewy(-30deg) rotate(0deg);
color: white;
box-shadow: inset 0 0 5px 5px violet;
transition: 0.4s ease-in-out;
}
li:nth-child(2) a { transform: skewy(-30deg) rotate(-60deg); }
li:nth-child(3) a { transform: skewy(-30deg) rotate(-120deg); }
li:nth-child(4) a { transform: skewy(-30deg) rotate(-180deg); }
li:nth-child(5) a { transform: skewy(-30deg) rotate(-240deg); }
li:nth-child(6) a { transform: skewy(-30deg) rotate(-300deg); }
li:hover a {
color: violet; box-shadow: inset 0 0 5px 5px white;
}
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
</ul>
作者:@UModel
问题:是否有可能使用任何其他方法和技术来绘制和创建问题标签中指出的类似动画效果?
SVG 选项:
决定通过指向我们网站的链接使圆形菜单有点功能 - stackoverflow
<title> Все вопросы [javascript] </title>
圆圈分为扇区,每个扇区都有自己的
path
,因此可以将单独的链接链接到其扇区和相应的提示。悬停光标时,扇区会突出显示
阴影是使用 SVG 过滤器实现的
所有链接都在网站内工作,点击获取乐趣
使用 CSS 变量设置颜色,以便更轻松地将颜色主题更改为您喜欢的颜色
要更深入地了解应用程序的操作,您可以阅读代码注释。