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


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代码
Nov 19 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
深入理解Javascript箭头函数中的this
Feb 13 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
javaScript 逻辑运算符使用技巧整理
May 03 Javascript
JavaScript利用fetch实现异步请求的方法实例
Jul 26 Javascript
Vue+Element使用富文本编辑器的示例代码
Aug 14 Javascript
Vue 进入/离开动画效果
Dec 26 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 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 登录记住密码实现思路
2013/05/07 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python实现批量修改文件名实例
2015/07/08 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Django 登陆验证码和中间件的实现
2018/08/17 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
挑战杯创业计划书的写作指南
2014/01/07 职场文书
个人简历自我评价范文
2014/02/04 职场文书
五好党支部事迹材料
2014/02/06 职场文书
图书馆义工感想
2015/08/07 职场文书