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笔记 String类replace函数的一些事
Sep 22 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
JS使用eval解析JSON的注意事项分析
Nov 14 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
Feb 19 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
jQuery实现字体颜色渐变效果的方法
Mar 29 jQuery
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
js实现登录与注册界面
Nov 01 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
Feb 10 Javascript
bootstrap-paginator服务器端分页使用方法详解
Feb 13 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 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+mysql 实现身份验证代码
2010/03/24 PHP
php 文件上传类代码
2011/08/06 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python PIL模块与随机生成中文验证码
2016/02/27 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
python解包概念及实例
2021/02/17 Python
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
大学生蛋糕店创业计划书
2014/01/13 职场文书
小学感恩节活动策划方案
2014/10/06 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
Python基础之字符串格式化详解
2021/04/21 Python