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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
手把手教你自己写一个js表单验证框架的方法
Sep 14 Javascript
jquery实现心算练习代码
Dec 06 Javascript
javascript检查表单数据是否改变的方法
Jul 30 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
AngularJS 中的数据源的循环输出
Oct 12 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
Nov 28 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 Javascript
vue根据值给予不同class的实例
Sep 29 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 gzip压缩输出的实现方法
2013/04/27 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
python dlib人脸识别代码实例
2019/04/04 Python
python脚本开机自启的实现方法
2019/06/28 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
python代码xml转txt实例
2020/03/10 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
史学专业毕业生求职信
2014/05/09 职场文书
运动会方阵口号
2014/06/07 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
银行转正自我鉴定
2014/09/29 职场文书
招商银行工作证明
2015/06/17 职场文书