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 相关文章推荐
用javascript获取地址栏参数
Dec 22 Javascript
Javascript入门学习资料收集整理篇
Jul 06 Javascript
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
js 实现菜单左右滚动显示示例介绍
Nov 21 Javascript
window.location不跳转的问题解决方法
Apr 17 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
Sep 20 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
Aug 25 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 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 OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
法制宣传教育方案
2014/05/09 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2015年实习单位评语
2015/03/25 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
python办公自动化之excel的操作
2021/05/23 Python
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫