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 相关文章推荐
XP折叠菜单&amp;仿QQ2006菜单
Dec 16 Javascript
深入解析contentWindow, contentDocument
Jul 04 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
js接收并转化Java中的数组对象的方法
Aug 11 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
微信小程序提交form操作示例
Dec 30 Javascript
微信小程序textarea层级过高的解决方法
Mar 04 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
Nov 06 Javascript
js基于canvas实现时钟组件
Feb 07 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
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
Python验证码识别处理实例
2015/12/28 Python
python实现感知器算法详解
2017/12/19 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
如何基于python生成list的所有的子集
2019/11/11 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
css sprite简单实例
2016/05/23 HTML / CSS
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
毕业生的自我评价
2013/12/30 职场文书
公积金单位接收函
2014/01/11 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
电工工作职责范本
2014/02/22 职场文书
投标授权委托书范文
2014/08/02 职场文书
任长霞观后感
2015/06/16 职场文书
阿里云日志过滤器配置日志服务
2022/04/09 Servers