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


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实现QQ图片一闪一闪的效果小例子
Jul 31 Javascript
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
webpack搭建vue 项目的步骤
Dec 27 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
Vue性能优化的方法
Jul 30 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
Javascript表单序列化原理及实现代码详解
Oct 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
浅析PHP开发规范
2018/02/05 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
jQuery操作select的实例代码
2012/06/14 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
puppeteer库入门初探
2019/01/09 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python获取服务器信息的最简单实现方法
2015/03/05 Python
深入Python函数编程的一些特性
2015/04/13 Python
python单例模式实例解析
2018/08/28 Python
详解Python打包分发工具setuptools
2019/08/05 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
街道务虚会发言材料
2014/10/20 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
新学期感想
2015/08/10 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server
如何用JavaScipt测网速
2021/05/09 Javascript
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python