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基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
jQuery之排序组件的深入解析
Jun 19 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
Apr 20 Javascript
JavaScript组件开发完整示例
Dec 15 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
BackBone及其实例探究_动力节点Java学院整理
Jul 14 Javascript
解决Linux无法正常安装与卸载Node.js的方法
Jan 19 Javascript
Vue全局分页组件的实现代码
Aug 10 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
vue router 组件的高级应用实例代码
Apr 08 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 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
用mysql内存表来代替php session的类
2009/02/01 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
PHP文件与目录操作示例
2016/12/24 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Python异常处理操作实例详解
2018/05/10 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
教师学习培训邀请函
2014/02/04 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
Android中的Launch Mode详情
2022/06/05 Java/Android