本文实例为大家分享了js+css实现扇形导航效果的具体代码,供大家参考,具体内容如下\
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< title >扇形导航</ title >
< style type = "text/css" >
*{
margin: 0;
padding: 0;
}
html,body{
height: 100%;
overflow: hidden;
}
#wrap{
height: 50px;
width: 50px;
/* background-color: pink; */
position: fixed;
right: 15px;
bottom: 15px;
/* overflow: hidden; */
}
#wrap>.home{
height: 49px;
width: 49px;
/* margin: auto; */
background: url(img/home.png) ;
background-position: center;
border-radius: 50%;
transition: 1s;
position: absolute;
z-index: 1;
}
#wrap>.nav{
height: 100%;
position: relative;
}
#wrap>.nav>img{
position: absolute ;
right: 0px;
bottom: 0px;
margin: 4px;
border-radius: 50% ;
}
.home:hover{
transform: rotate(360);
}
</ style >
</ head >
< body >
< div id = "wrap" >
< div class = "home" ></ div >
< div class = "nav" >
< img src = "img/clos.png" >
< img src = "img/full.png" >
< img src = "img/open.png" >
< img src = "img/prev.png" >
< img src = "img/refresh.png" >
</ div >
</ div >
</ body >
< script type = "text/javascript" >
window.onload =function(){
var homeEle = document.querySelector("#wrap>.home");
var flag= true;
var imgs =document.querySelectorAll("#wrap>.nav>img");
function fn(){
this.style.transition=0.3+"s";
this.style.transform ="rotate(-360deg) scale(1)";
this.style.opacity =1;
this.removeEventListener("transitionend",fn);
}
for (var i=0;i< imgs.length ;i++) {
imgs[i] .onclick = function (){
this.style.transform = "rotate(-360deg) scale(2)" ;
this.style.transition = "0.3s" ;
this.style.opacity = 0 .1;
this.addEventListener("transitionend",fn);
}
}
homeEle.onclick = function (){
console.log(imgs.length);
if(flag){
this.style.transform = "rotate(-720deg) " ;
imgs.forEach((index,No)=>{
imgs[No].style.right = getLocation(140,No*22.5/180*Math.PI).left+"px";
imgs[No].style.bottom = getLocation(140,No*22.5/180*Math.PI).top+"px";
imgs[No].style.transform ="rotate(-360deg) scale(1)";
imgs[No].style.transition ="1s "+No*0.1+"s";
});
}else{
this.style.transform="rotate(0)";
imgs.forEach((index,No)=>{
imgs[No].style.right = 0+"px";
imgs[No].style.bottom = 0+"px";
imgs[No].style.transform ="rotate(0deg) scale(1)";
imgs[No].style.transition="1s "+(0.4-No*0.1)+"s";
});
}
flag =!flag;
}
var getLocation =function(r,deg){
var x =Math.round(r*Math.sin(deg));
var y =Math.round(r*Math.cos(deg));
return{left:x,top:y};
}
}
</ script >
</ html >
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/l_x_cser/article/details/104447453