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


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事件写法实现代码
Jan 07 Javascript
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
javascript 面向对象全新理练之数据的封装
Dec 03 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
正则表达式优化JSON字符串的技巧
Dec 24 Javascript
深入解析JavaScript中的立即执行函数
May 21 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
Jul 27 Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 Javascript
Element Carousel 走马灯的具体实现
Jul 26 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 Javascript
Moment的feature导致线上bug解决分析
Sep 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
通过文字传递创建的图形按钮
2006/10/09 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
AngularJS 限定$scope的范围实例详解
2017/06/23 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
基于JS实现数字动态变化显示效果附源码
2019/07/18 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
Python实现的NN神经网络算法完整示例
2018/06/19 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Python request操作步骤及代码实例
2020/04/13 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
初任培训自我鉴定
2013/10/07 职场文书
计算机专业自荐信
2013/10/14 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
2016公司年会通知范文
2015/04/25 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript