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


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 相关文章推荐
基于jquery的给文章加入关键字链接
Oct 26 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
js和jquery如何获取图片真实的宽度和高度
Sep 28 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
Feb 24 Javascript
JavaScript  cookie 跨域访问之广告推广
Apr 20 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
Jun 06 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 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下使用SMTP发邮件的代码
2008/01/10 PHP
php日历[测试通过]
2008/03/27 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
javascript 写类方式之七
2009/07/05 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
js实现微信分享代码
2020/10/11 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
Python计算字符宽度的方法
2016/06/14 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Python转换时间的图文方法
2019/07/01 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
python3.5的包存放的具体路径
2020/08/16 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
python中的yield from语法快速学习
2020/11/06 Python
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
冬季施工防火方案
2014/05/17 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
党建工作整改措施
2014/10/28 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
琅琊山导游词
2015/02/05 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS