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 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
jQuery提交多个表单的小例子
Jun 30 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
JS的get和set使用示例
Feb 20 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 Javascript
第一篇初识bootstrap
Jun 21 Javascript
React Native时间转换格式工具类分享
Oct 24 Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
js实现GIF动图分解成多帧图片上传
Oct 24 Javascript
JS绘图Flot如何实现动态可刷新曲线图
Oct 16 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读取文件内容后清空文件示例代码
2014/03/18 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
js实现登录与注册界面
2017/11/01 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python生成器(Generator)详解
2015/04/13 Python
python中__slots__用法实例
2015/06/04 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
python多进程控制学习小结
2018/10/31 Python
python 进程的几种创建方式详解
2019/08/29 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
车贷收入证明范本
2014/09/14 职场文书
办公室主任个人总结
2015/02/28 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫