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


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 相关文章推荐
js 编写规范
Mar 03 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 Javascript
JavaScript异步加载浅析
Dec 28 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
关于Javascript中document.cookie的使用
Mar 08 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
基于Three.js实现360度全景图片
Dec 30 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
Vue中component标签解决项目组件化操作
Sep 04 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
newxtree.js代码
2007/03/13 Javascript
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python实现查询IP地址所在地
2015/03/29 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python绘图实现显示中文
2019/12/04 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python的flask框架难学吗
2020/07/31 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
css sprite简单实例
2016/05/23 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
光电信息专业应届生求职信
2013/10/07 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
安全教育演讲稿
2014/05/09 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android
Apache POI的基本使用详解
2021/11/07 Servers
利用Python实现Picgo图床工具
2021/11/23 Python
Python中的程序流程控制语句
2022/02/24 Python