您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要介绍js+css实现扇形导航效果的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<!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>
以上是js+css实现扇形导航效果的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。