js+css实现扇形导航效果


Posted in Javascript onAugust 18, 2020

本文实例为大家分享了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实现扇形导航效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 强制设为首页的代码
Jan 31 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
原生js事件的添加和删除的封装
Jul 01 Javascript
js比较日期大小的方法
May 12 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
Node.js 8 中的重要新特性
Jun 28 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 Javascript
微信小程序云开发之使用云存储
May 17 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
js实现3D旋转效果
Aug 18 #Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 #Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
Aug 18 #Javascript
javascript实现移动端上传图片功能
Aug 18 #Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 #Javascript
小程序实现上传视频功能
Aug 18 #Javascript
如何在selenium中使用js实现定位
Aug 18 #Javascript
You might like
dedecms模版制作使用方法
2007/04/03 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
php中this关键字用法分析
2016/12/07 PHP
重定向实现代码
2006/11/20 Javascript
共享自己写一个框架DreamScript
2007/01/20 Javascript
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
python开发简易版在线音乐播放器
2017/03/03 Python
Python 的类、继承和多态详解
2017/07/16 Python
Python中return self的用法详解
2018/07/27 Python
python实现对输入的密文加密
2019/03/20 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
大专应届生个人的自我评价
2013/11/21 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
会计师事务所实习证明
2014/11/16 职场文书
整改通知书格式
2015/04/22 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
学校标语口号大全
2015/12/26 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
Python OpenCV实现图形检测示例详解
2022/04/08 Python