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


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 相关文章推荐
javascript getElementsByName()的用法说明
Jul 31 Javascript
javascript 流畅动画实现原理
Sep 08 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
Dec 24 Javascript
基于jquery的合并table相同单元格的插件(精简版)
Apr 05 Javascript
改变checkbox默认选中状态及取值的实现代码
May 26 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
Jan 23 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
Vue自定义指令封装节流函数的方法示例
Jul 09 Javascript
JS使用Date对象实时显示当前系统时间简单示例
Aug 23 Javascript
JS实现使用POST方式发送请求
Aug 30 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
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP chr()函数讲解
2019/02/11 PHP
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
详解vue 组件
2020/06/11 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
python怎么调用自己的函数
2020/07/01 Python
python实现最短路径的实例方法
2020/07/19 Python
python安装及变量名介绍详解
2020/12/12 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
应届生学校辅导员求职信
2013/11/07 职场文书
小学作文评语大全
2014/04/21 职场文书
访谈节目策划方案
2014/05/15 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书