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 相关文章推荐
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
May 30 Javascript
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
JavaScript 学习笔记(九)call和apply方法
Jan 11 Javascript
DIV外区域Click后关闭DIV的实现代码
Dec 21 Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 Javascript
js获取checkbox复选框选中的选项实例
Aug 24 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
浅谈JavaScript的push(),pop(),concat()方法
Jun 03 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
react中使用swiper的具体方法
May 15 Javascript
jQuery实现小火箭返回顶部特效
Feb 03 jQuery
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之第一天
2006/10/09 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
简述php环境搭建与配置
2016/12/05 PHP
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
python把1变成01的步骤总结
2019/02/27 Python
Python列表对象实现原理详解
2019/07/01 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python绘制规则网络图形实例
2019/12/09 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
Python解析微信dat文件的方法
2020/11/30 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
监督检查工作方案
2014/05/28 职场文书
寻找成龙观后感
2015/06/12 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
Redis性能监控的实现
2021/07/09 Redis
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技