仿魅族flyme社区app的一个动画效果
2017-10-11 10:33
239 查看
属于魅族的忠实粉,使用flyme社区的时候发现一个不错的效果,所以就私下来研究哈。
效果如下:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title></title><link rel="stylesheet" href="style/index.css"><link rel="stylesheet" href="font/font.css"></head><body><div class="nav-wrap"><nav><a class="nav-item"><i class="iconfont icon-biji"></i></a><a class="nav-item"><i class="iconfont icon-xiangji"></i></a><a class="nav-item"><i class="iconfont icon-hauti"></i></a></nav><div class="main-nav"><i class="iconfont icon-jiahao"></i></div></div></body><script src="http://s0.qhimg.com/lib/jquery/183.js" ></script><script type="text/javascript">(function(){// 当菜单没被激活时var isLocated = false;$('.nav-wrap').on('click','.main-nav',function(e){e.preventDefault();var me = $(this),navWrap = me.closest('.nav-wrap'), // 动画效果的父容器navs = navWrap.find('nav a'); // 父容器中的所有子菜单if(!navWrap.hasClass('active') && !isLocated){// 圆的半径 raduisvar width = navWrap.width(),radius = width / 2;// 圆形菜单的起始、终止角度var startAngle = -90,endAngle =-230;// 两个子菜单间的夹角 gapvar total = navs.length,gap = (endAngle - startAngle)/total;// 角度->弧度var radian = Math.PI / 180;/** 计算并确定各个子菜单的最终位置*/$.each(navs, function(index, item){// 当前子菜单与x轴正向的夹角 θ (角度->弧度)var myAngle = (startAngle + gap*index) * radian; // θ// 计算当前子菜单相对于左上角(0,0)的坐标 (x,y)var myX = radius + radius * Math.cos( myAngle ), // x=r+rcos(θ)myY = radius + radius * Math.sin( myAngle ); // y=r+rsin(θ)// 设置当前子菜单的位置 (left,top) = (x,y)$(this).css({left: myX + 'px',top: myY + 'px'});});isLocated = true;}navWrap.toggleClass('active');$('.nav-item').toggleClass('a_active');$('.main-nav').toggleClass('main-active')});})();</script></html>index css部分:* {margin: 0;padding: 0;}body {/*background-color: #292a38;*/font-family: "Microsoft Yahei";}h1 {margin-top: 20px;text-align: center;color: #fff;}.nav-wrap {position: relative;width: 200px;height: 200px;margin: 50px auto;/*border: 2px dotted #4e5061;*/border-radius: 50%;}.main-nav {position: absolute;left: 50%;top: 50%;-webkit-transform: translate(-50%,-50%) rotate(0deg) scale(1);transform: translate(-50%,-50%) rotate(0deg) scale(1);transition: all .2s linear;width: 50px;height: 50px;line-height: 50px;font-size: 16px;text-align: center;text-decoration: none;color: #fff;border-radius: 50px;text-shadow: 1px 1px 0px #000;background: #0184FF;cursor: pointer;opacity: 1;}.main-active{background: #15a5f3;opacity: .5;-webkit-transform: translate(-50%,-50%) rotate(45deg) scale(0.8);transform: translate(-50%,-50%) rotate(45deg) scale(0.8);}.nav-wrap nav {position: absolute;width: 100%;height: 100%;-webkit-transform: scale(0) ;transform: scale(0) ;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;opacity: 0;}.nav-wrap.active nav {-webkit-transform: scale(1) ;transform: scale(1) ;opacity: 1;}.nav-item{position: absolute;width: 40px;height: 40px;background: #0184FF;text-align: center;line-height: 40px;text-decoration: none;color: #fff;border-radius: 50px;text-shadow: 1px 1px 0px #000;-webkit-transform: translate(-50%,-50%) rotate(0deg) ;transform: translate(-50%,-50%) rotate(0deg) ;-webkit-transition: all 0.5s ease-out;transition: all 0.5s ease-out;}.a_active{-webkit-transform: translate(-50%,-50%) rotate(720deg) !important;transform: translate(-50%,-50%) rotate(720deg) !important; ;}.iconfont css:@font-face {font-family: 'iconfont'; /* project id 422939 */src: url('//at.alicdn.com/t/font_422939_xqeu49ziopw4s4i.eot');src: url('//at.alicdn.com/t/font_422939_xqeu49ziopw4s4i.eot?#iefix') format('embedded-opentype'),url('//at.alicdn.com/t/font_422939_xqeu49ziopw4s4i.woff') format('woff'),url('//at.alicdn.com/t/font_422939_xqeu49ziopw4s4i.ttf') format('truetype'),url('//at.alicdn.com/t/font_422939_xqeu49ziopw4s4i.svg#iconfont') format('svg');}.iconfont{font-family:"iconfont" !important;font-size:18px;font-style:normal;-webkit-font-smoothing: antialiased;-webkit-text-stroke-width: 0.2px;-moz-osx-font-smoothing: grayscale;}.icon-jiahao:before { content: "\e603"; }.icon-hauti:before { content: "\e895"; }.icon-xiangji:before { content: "\e674"; }.icon-biji:before { content: "\e606"; }
相关文章推荐
- 模仿猫眼电影App一个动画效果
- Android Animation实战之一个APP的ListView的动画效果
- 模仿猫眼电影App一个动画效果
- 轻松实现Android,iOS的一个手势动画效果
- 一个简单的循环往复的动画效果
- iOS 接入 芝麻信用 iOS开发-Xcode-OC_JSON_Plugin-将Json直接转成模型对应属性 iOS开发-直播APP常用动画效果
- 一个效果很华丽的仿桌面APP,却胜似Launcher
- 直播APP常用动画效果
- 仿电视关闭的一个动画效果
- Vue-router结合transition实现app前进后退动画切换效果
- 推荐一个以动画效果显示github提交记录的黑科技工具:Gource
- 一个帮助你生成iOS文件夹效果的jQuery插件 - App-Folders
- 一个动画效果
- 仿淘宝的一个图片动画效果
- 最近见到一个用react native实现的标尺动画,不知道如何实现 帖两张图(新知食App)
- Android源码集锦,悬浮窗综合资讯类APP动画效果左右切换效果美妆领域
- BaseAnimation是基于开源的APP,致力于收集各种动画效果(最新版本1.3)
- 高级UI特效仿直播点赞效果—一个优美炫酷的点赞动画
- 使用HTML5和jQuery插件Reel实现一个超酷的星际争霸2兵种动画360度预览效果
- 一个简单的js动画效果代码