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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
javascript 文档的编码问题解决
Mar 01 Javascript
JavaScript DOM学习第八章 表单错误提示
Feb 19 Javascript
jquery和ajax的关系详细介绍
Nov 29 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
connect中间件session、cookie的使用方法分享
Jun 17 Javascript
JavaScript避免内存泄露及内存管理技巧
Sep 05 Javascript
node.js中的fs.appendFileSync方法使用说明
Dec 17 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
js实现数组去重方法及效率?Ρ? target=
Feb 14 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php浏览历史记录的方法
2015/03/10 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python基础教程之循环介绍
2014/08/29 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python如何实现DES加密
2020/09/21 Python
Python中Qslider控件实操详解
2021/02/20 Python
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
商务日语专业毕业生求职信
2013/10/26 职场文书
校三好学生主要事迹
2014/01/11 职场文书
置业顾问岗位职责
2014/03/02 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
法律进机关实施方案
2014/03/12 职场文书
停电调休通知
2015/04/16 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Python制作春联的示例代码
2022/01/22 Python