微信小程序实现登录页云层漂浮的动画效果


Posted in Javascript onMay 05, 2017

前言

2017年前端火了,微信小程序、weex、reactnative,就连支付宝也搞起了小程序,总感觉这是原生要毁灭的节奏啊,我也乘热上车万一波。

上效果图(GIF动态图)

微信小程序实现登录页云层漂浮的动画效果

当我看到这张背景图的时候,强迫症立马来了,这云朵为什么不动,于是开始了一波折腾。

知识点

认识animation

animation 属性是一个简写属性,用于设置六个动画属性:

描述
animation-name 规定需要绑定到选择器的 keyframe 名称
animation-duration 规定完成动画所花费的时间,以秒或毫秒计
animation-timing-function 规定动画的速度曲线
animation-delay 规定在动画开始之前的延迟
animation-iteration-count 规定动画应该播放的次数
animation-direction 规定是否应该轮流反向播放动画

认识translate

方法特别多,本文主要用2个。

  • translate3d(x,y,z)定义 3D 缩放转换。
  • rotate3d(x,y,z,angle) 定义 3D 旋转。

translate3d(1,1,0)

你可以理解为(左右,上下,大小)变化。

rotate3d(1,1,0,45deg)

微信小程序实现登录页云层漂浮的动画效果

实现

1.两朵云除了大小和初始位置不通,其他都相同。

.cloud {
 position: absolute;
 z-index: 3;
 width:99px;height:64px; top: 0; 
 right: 0;
 bottom: 0;
 animation: cloud 5s linear infinite;
}

@keyframes cloud {
 from {
 transform: translate3d(-125rpx, 0, 0);
 }

 to {
 transform: translate3d(180rpx, 0, 0);
 }
}

其中rpx是微信特有的属性,不受屏幕大小的影响,类似于安卓里的dp单位。keyframes是匀速移动,从css里可以看到只改变了左右方向。

2.头像本来想加个吊篮,像荡秋千一样的荡漾,但是没有成功,只是随便搞了个飘来飘去的动画。

微信小程序实现登录页云层漂浮的动画效果

代码如下

@keyframes pic {
 0% {
 transform: translate3d(0, 20rpx, 0) rotate(-15deg);
 }
 15% {
 transform: translate3d(0, 0rpx, 0) rotate(25deg);
 }
 36% {
 transform: translate3d(0, -20rpx, 0) rotate(-20deg);
 }
 50% {
 transform: translate3d(0, -10rpx, 0) rotate(15deg);
 }
 68% {
 transform: translate3d(0, 10rpx, 0) rotate(-25deg);
 }
 85% {
 transform: translate3d(0, 15rpx, 0) rotate(15deg);
 }
 100% {
 transform: translate3d(0, 20rpx, 0) rotate(-15deg);
 }
}

没想到keyframes不仅有支持from to还支持百分比,不错。这里,只要控制好层级关系、动画时长、透明度即可实现云层漂浮。

总结

不得不说css还是有很多动画的,也有很多特效,微信小程序里加一点动画,能使页面稍微美观点。当然,复杂点的动画,只能有机会再更新。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
用Javscript实现表单复选框的全选功能
May 25 Javascript
jquery垂直公告滚动实现代码
Dec 08 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
Mar 30 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
JavaScript实现输入框(密码框)出现提示语
Jan 12 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
Mar 07 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
Openlayers实现地图的基本操作
Sep 28 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 #Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
May 05 #Javascript
移动端web滚动分页的实现方法
May 05 #Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 #Javascript
Vue中使用vux的配置详解
May 05 #Javascript
Angular directive递归实现目录树结构代码实例
May 05 #Javascript
微信小程序开发图片拖拽实例详解
May 05 #Javascript
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
javascript void(0)的妙用
2009/10/21 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
Javascript中神奇的this
2016/01/20 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python基于百度云文字识别API
2018/12/13 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
劳动模范事迹材料
2014/01/19 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
企业法人任命书
2015/09/21 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
MySQL8.0.18配置多主一从
2021/06/21 MySQL
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL