基于SVG的超酷圆形导航菜单特效

基于SVG的超酷圆形导航菜单特效

这是一款基于SVG的超酷圆形导航菜单特效。该导航菜单通过SVG进行布局,然后通过js和CSS代码来在鼠标hover菜单时,制作菜单项的动画效果。

使用方法
在页面中引入style.css和index.js文件。

1
2
<link rel="stylesheet" href="css/style.css">
<script  src="js/index.js"></script>

HTML结构
导航菜单的HTML结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<div class="main">
  <div class="navigation-circle">
    <div class="navigation-circle__inner">
      <svg class="navigation-circle-svg navigation-circle-svg--opaque" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewbox="0 0 320 320" style="enable-background:new 0 0 320 320;">
        <circle cx="160" cy="160" r="158" fill="none" stroke-width="1" stroke="#c644fc" stroke-linecap="round" stroke-miterlimit="10" style="stroke-dashoffset:0;stroke-dasharray:none;"></circle>
      </svg>
      <svg class="navigation-circle-svg navigation-circle-svg--mask" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewbox="0 0 320 320" style="enable-background:new 0 0 320 320;">
        <circle id="mask-circle" cx="160" cy="160" r="158" fill="none" stroke-width="2" stroke="#c644fc" stroke-linecap="round" stroke-miterlimit="10" style="stroke-dasharray:1005.3088px;"></circle>
      </svg>
      <ul class="navigation-circle__list">
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(1)" onmouseenter="calculateOffset(1)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #1
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(2)" onmouseenter="calculateOffset(2)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #2
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(3)" onmouseenter="calculateOffset(3)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #3
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(4)" onmouseenter="calculateOffset(4)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #4
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(5)" onmouseenter="calculateOffset(5)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #5
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(6)" onmouseenter="calculateOffset(6)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #6
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
        <li class="navigation-circle-list-item"><a class="navigation-circle-list-item__point" onclick="onClick(7)" onmouseenter="calculateOffset(7)" onMouseLeave="onMouseLeave()">
            <div class="navigation-circle-list-item__meta">
              <h3 class="navigation-circle-list-item__title">Item #7
             </h3>
              <h4 class="navigation-circle-list-item__subtitle">It just goes round and round</h4>
            </div></a></li>
      </ul>
    </div>
  </div>
</div>
当前内容只有登录了才能查看,如果您已经注册,请登录
3

发表评论