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


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的ready方法详解
Nov 27 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
Feb 17 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
Nov 30 Javascript
angular中实现控制器之间传递参数的方式
Apr 24 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
Node.js文本文件BOM头的去除方法
Nov 22 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
实用函数4
2007/11/08 PHP
PHP pear安装配置教程
2016/05/14 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
script标签属性type与language使用选择
2012/12/02 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
2013/04/01 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
Javascript实现图片不间断滚动的代码
2016/06/22 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
使用Python写一个小游戏
2018/04/02 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
如何理解Python中的变量
2020/06/01 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Puma印度官网:德国运动品牌
2019/10/06 全球购物
管理科学大学生求职信
2013/11/13 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
年会主持人开场白台词
2015/05/29 职场文书
2016年记者节感言
2015/12/08 职场文书
银行培训心得体会范文
2016/01/09 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL