前言

本人是一枚并不安分守己的后端程序猿,一直对前端开发“垂涎三尺”,所以,一有机会就会“不务正业”一番。最近,发现了一个非常好的学习资料,于是乎,我的老毛病又犯了,经过一段时间的研究,终于,把这些技能“收入囊中”。但是,本人觉得,这么好的前端学习资料,如果被我“中饱私囊”了,实在是太可惜了。所以呢,我就花了一点时间,为大家解析一下这些炫酷的技能。这篇文章,解析的是一个loading加载的动效,纯CSS的哦。


一、效果展示及思路分析

1.效果展示

uniapp ios 首次播放视频报错 uniapp loading_vue 启动

2.思路分析

我们可以将该动效拆成两部分来理解:

第一部分 圆形图标以及图标中的进度文字百分比、第二部分 围绕圆形图标转动的圆弧

uniapp ios 首次播放视频报错 uniapp loading_vue loading组件_02

废话不多说,直接上代码!!

二、实现步骤

1.准备工作

在正式开始写代码之前,需要先下载相应的IDE,以及进行必要的配置工作。

  • 下载Hbuilder X
  • 新建uni-app项目
  • 在pages文件夹下创建home文件夹,在此文件夹下创建home.vue文件
  • 修改配置文件pages.json,设置新创建的home.vue文件为应用启动项
  • 项目根目录下新建components文件夹,在此文件夹下创建CircleLoading.vue自定义组件文件

uniapp ios 首次播放视频报错 uniapp loading_uniapp ios 首次播放视频报错_03

uni-app项目目录结构

uniapp ios 首次播放视频报错 uniapp loading_uniapp ios 首次播放视频报错_04

pages.json配置文件中新增home为应用启动页

ok,搞定以上准备工作后,我们就可以开始敲代码了。

2.代码实现

(1)首先,为了演示方便,我们需要在home.vue应用启动页中添加一个布局,如图

uniapp ios 首次播放视频报错 uniapp loading_css 实现app图标样式_05

uniapp ios 首次播放视频报错 uniapp loading_vue json解析_06

(2)引入创建好的自定义vue组件,并注册到当前页面中

uniapp ios 首次播放视频报错 uniapp loading_uniapp ios 首次播放视频报错_07

(3) 在当前页面中使用自定义vue组件

注意:在使用自定义组件时,需要在最外层再包裹一个view标签,这样做的目的是为了避免在home.vue页面中元素使用了transform样式以后,在自定义vue组件页面样式中元素z-index样式无效的问题。(这个坑,我已经爬过了!o(╥﹏╥)o 大家就不要再往里跳了!放心!这次分享的动效中没有这个坑,大家安心的继续敲代码吧!)

uniapp ios 首次播放视频报错 uniapp loading_vue loading组件_08

home.vue完整代码

uniapp ios 首次播放视频报错 uniapp loading_vue 启动_09

 (4)编写自定义vue组件CircleLoading.vue

说明:样式代码并没有考虑浏览器兼容问题,本代码的测试环境是谷歌浏览器。

  • 在模版代码块中,添加uni-app提供的view组件元素(类似于HTML中的div)并设置class属性为circle-loading(嗯,你没有看错,就只有这么一个view组件元素,通过CSS样式就能实现文章开头演示的动效!别着急,继续往下看......)

uniapp ios 首次播放视频报错 uniapp loading_css 实现app图标样式_10

  • 设置view元素的样式

uniapp ios 首次播放视频报错 uniapp loading_css 实现app图标样式_11

说明:用到的知识点有“相对定位和绝对定位”、“弹性布局”、border-radius以及box-shadow,如果对这些知识点不是太了解的话,可以去翻一下资料,不难。这里我就不再做过多的解释了。(我第一次看到这些样式代码时,表示也是一脸懵B,没有办法,“不务正业”嘛,还是要付出一定代价的。还好,我还有一点点前端基础,学起来也比较快,终于让我把这段代码搞定!)

  • 利用CSS:before选择器,创建伪元素

uniapp ios 首次播放视频报错 uniapp loading_uniapp ios 首次播放视频报错_12

分析:创建的这个伪元素实际上和view元素是一样大小的,只不过它们重叠了而已。这个时候,我们只设置了伪元素的上边框的颜色,所以就做出了我们想要的样式。如图:

uniapp ios 首次播放视频报错 uniapp loading_vue loading组件_13

  • 给伪元素添加CSS3动效

说明:伪元素中添加的animation属性与@keyframes一起使用,从而实现不同的动画效果,0%表示开始动画,100%表示结束动画,当然我们还可以在中间设置新的关键帧,例如:在0%和100%中间再设置一个50%

uniapp ios 首次播放视频报错 uniapp loading_uniapp ios 首次播放视频报错_14


总结

哎呀,打了这么半天的字,终于把这个动效的实现过程给大家讲完了,怎么样?做出来的效果还不错吧!那么,就让我们简单来总结下这篇文件的知识点。

  • uni-app项目中如何设置应用启动页,如何创建自定义vue组件以及如何在应用启动页中使用自定义vue组件
  • 编写自定义vue组件中用到了“相对定位与绝对定位”、“弹性布局”、border-radius以及box-shadow
  • 添加CSS3动效时用到的animation属性以及@keyframes规则

以上就是本文中用到的知识点,说一个题外话哈,小凡觉得,这个动效除了以上的知识点以外,最重要的还是如何拆分这个动效,从而来实现它,这个才是最关键的,剩下的就是把拆分的功能做出来就OK了。(嘿嘿,其实后端的很多功能也是这么个思路!突然感觉,我怎么这么优秀呢!咳咳......不小心说出了心声,大家就当没看见我前面的字好了!(*^▽^*))