CSS--实现<圆形导航菜单>

概要

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。熟练掌握CSS的基本原理可以实现更好的页面交互效果,提升用户的使用体验。

代码实现

新建文件夹circle-nav,circle-nav下新建index.html和style.css文件,index.html引入本地font-awesome字体库或者CDN上的资源

目录结构

/**
circle-nav
   ├─ fontawesome-free-5.11.2-web
   ├─ index.html
   └─ style.css
*/

index.html代码

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="./fontawesome-free-5.11.2-web/css/all.min.css">
  <link rel="stylesheet" href="style.css">
  <title>纯CSS3炫酷圆形导航菜单特效</title>
</head>
<body>
  <h1 style="text-align: center;color: aliceblue">CSS炫酷圆形导航菜单特效</h1>
  <div class="demo">
    <div class="navbar">主菜单
      <ul class="menu">
        <li><a href="#" class="fab fa-facebook-f"></a></li>
        <li><a href="#" class="fab fa-google-plus"></a></li>
        <li><a href="#" class="fab fa-twitter"></a></li>
        <li><a href="#" class="fab fa-linkedin"></a></li>
        <li><a href="#" class="fab fa-pinterest"></a></li>
        <li><a href="#" class="fa fa-rss"></a></li>
        <li><a href="#" class="fab fa-instagram"></a></li>
        <li><a href="#" class="fab fa-skype"></a></li>
        <li><a href="#" class="fab fa-github"></a></li>
      </ul>
    </div>
  </div>	
</body>
</html>

style.css代码

body {
  background-color: #262626
}
.demo {
  height: 150px;
  width: 150px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.navbar {
  width: 150px;
  height: 150px;
  line-height: 150px;
  border-radius: 50%;
  background: #fff;
  position: relative;
  cursor: pointer;
  text-align: center;
  font-size: 1.75em;
  font-weight: bold;
  color: #383838;
  transition: 0.24s 0.2s;
}
.navbar:hover {
  background: rgba(255, 255, 255, 0.75);
}
.navbar .menu {
  list-style: none;
  padding: 0;
  margin: 0;
  position: absolute;
  top: -75px;
  left: -75px;
  border: 150px solid transparent;
  cursor: default;
  border-radius: 50%;
  transform: scale(0);
  transition: transform 1.4s 0.07s;
  z-index: -1;
}
.navbar:hover .menu {
  transition: transform 0.4s 0.08s, z-index 0s 0.5s;
  transform: scale(1);
  z-index: 1;
}
.navbar .menu li {
  position: absolute;
  top: -100px;
  left: -100px;
  transform-origin: 100px 100px;
  transition: all 0.5s 0.1s;
}
.navbar:hover .menu li {
  transition: all 0.6s;
}
.navbar .menu li a {
  transition:all .4s ease 0s;
  width: 45px;
  height: 45px;
  line-height: 45px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  font-size: 60%;
  color: #99b977;
  transition: 0.6s;
  text-decoration: none;
}
.navbar .menu li a:hover {
  background-color: #2860F8;
  color: #fff;
}
.navbar:hover .menu li:nth-child(1) {
  transition-delay: 0.02s;
  transform: rotate(85deg);
}
.navbar:hover .menu li:nth-child(1) a {
  transition-delay: 0.04s;
  transform: rotate(635deg);
}
.navbar:hover .menu li:nth-child(2) {
  transition-delay: 0.04s;
  transform: rotate(125deg);
}
.navbar:hover .menu li:nth-child(2) a {
  transition-delay: 0.08s;
  transform: rotate(595deg);
}
.navbar:hover .menu li:nth-child(3) {
  transition-delay: 0.06s;
  transform: rotate(165deg);
}
.navbar:hover .menu li:nth-child(3) a {
  transition-delay: 0.12s;
  transform: rotate(555deg);
}
.navbar:hover .menu li:nth-child(4) {
  transition-delay: 0.08s;
  transform: rotate(205deg);
}
.navbar:hover .menu li:nth-child(4) a {
  transition-delay: 0.16s;
  transform: rotate(515deg);
}
.navbar:hover .menu li:nth-child(5) {
  transition-delay: 0.1s;
  transform: rotate(245deg);
}
.navbar:hover .menu li:nth-child(5) a {
  transition-delay: 0.2s;
  transform: rotate(475deg);
}
.navbar:hover .menu li:nth-child(6) {
    transition-delay: 0.12s;
    transform: rotate(285deg);
}
.navbar:hover .menu li:nth-child(6) a {
  transition-delay: 0.24s;
  transform: rotate(435deg);
}
.navbar:hover .menu li:nth-child(7) {
  transition-delay: 0.14s;
  transform: rotate(325deg);
}
.navbar:hover .menu li:nth-child(7) a {
  transition-delay: 0.28s;
  transform: rotate(395deg);
}
.navbar:hover .menu li:nth-child(8) {
  transition-delay: 0.16s;
  transform: rotate(365deg);
}
.navbar:hover .menu li:nth-child(8) a {
  transition-delay: 0.32s;
  transform: rotate(355deg);
}
.navbar:hover .menu li:nth-child(9) {
  transition-delay: 0.18s;
  transform: rotate(405deg);
}
.navbar:hover .menu li:nth-child(9) a {
  transition-delay: 0.36s;
  transform: rotate(315deg);
}

效果展示

posted @ 2021-07-27 22:23  Elwin0204  阅读(322)  评论(0编辑  收藏  举报