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 相关文章推荐
JQuery UI皮肤定制
Jul 27 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
jquery 延迟执行实例介绍
Aug 20 Javascript
jquery实现加载等待效果示例
Sep 25 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
Nov 26 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
原生js简单实现放大镜特效
May 16 Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 Javascript
一个简单的node.js界面实现方法
Jun 01 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
微信小程序url传参写变量的方法
2018/08/09 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python encode和decode的妙用
2009/09/02 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
内业资料员岗位职责
2014/01/04 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
后备干部考察材料
2014/02/12 职场文书
户籍证明模板
2014/09/28 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
汶川大地震感悟
2015/08/10 职场文书
如何自己动手写SQL执行引擎
2021/06/02 MySQL