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 BS,dialog控件自适应大小
Jul 06 Javascript
很好用的js日历算法详细代码
Mar 07 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
模仿password输入框的实现代码
Jun 07 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
es6学习之解构时应该注意的点
Aug 29 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
Jan 23 Javascript
jQuery+ajax实现用户登录验证
Sep 13 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
PHP优于Node.js的五大理由分享
2012/09/15 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
php实现微信发红包
2015/12/05 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
Jquery cookie操作代码
2010/03/14 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
python中的lambda表达式用法详解
2016/06/22 Python
python爬虫使用cookie登录详解
2017/12/27 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python 项目目录结构设置
2020/02/14 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
python实现逻辑回归的示例
2020/10/09 Python
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
工作建议书范文
2014/05/13 职场文书
节水标语大全
2014/06/11 职场文书
学习礼仪心得体会
2014/09/01 职场文书
小学师德师风整改措施
2014/10/27 职场文书
维稳工作承诺书
2015/01/20 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
基于Redis的List实现特价商品列表功能
2021/08/30 Redis