Angular4如何自定义首屏的加载动画详解


Posted in Javascript onJuly 26, 2017

前言

相信大家都知道,在默认情况下,Angular应用程序在首次加载根组件时,会在浏览器的显示一个loading... 我们可以轻松地将loading修改成我们自己定义的动画。下面话不多说,来一起看看详细的介绍:

这是我们要实现首次加载的效果:

Angular4如何自定义首屏的加载动画详解

根组件标签中的内容

请注意:在你的入口文件index.html中,默认的loading...只是插入到根组件标签之间:

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>Fancy Loading Screen</title>
 <base href="/" rel="external nofollow" >
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <link rel="icon" type="image/x-icon" href="favicon.ico" rel="external nofollow" >
</head>
<body>

 <app-root>Loading...</app-root>

</body>
</html>

如果您在加载完根组件检查应用程序,则无法找到loading... 的文字,因为它在应用加载完成后被我们自己定义的组件替换掉。

这意味着我们可以在这些标签之间放置任何内容,包括样式定义,一旦Angular加载完根组件,就可以完全清除它们。

<app-root>
 <style>
 app-root {
  color: purple;
 }
 </style>
 I'm a purple loading message!
</app-root>

我们不必担心这些样式会影响我们的应用程序加载后的内容,因为一切都被完全替换掉。

现在你可以在那里随意的做任何事情。使用css或者svg实现自定义加载动画。

在我们的示例中,我们给页面一个粉红色的背景,我们使用Flexbox 将loading设置居中,给它设置一个更漂亮的字体,我们甚至在省略号上添加一个自定义动画:

<app-root>
 <style>
 app-root {
 display: flex;
 justify-content: center;
 align-items: center;
 height: 100vh;

 color: pink;
 text-transform: uppercase;
 font-family: -apple-system,
  BlinkMacSystemFont,
  "Segoe UI",
  Roboto,
  Oxygen-Sans,
  Ubuntu,
  Cantarell,
  Helvetica,
  sans-serif;
 font-size: 2.5em;
 text-shadow: 2px 2px 10px rgba(0,0,0,0.2);
 }
 body {
 background: salmon;
 margin: 0;
 padding: 0;
 }

 @keyframes dots {
 50% {
  transform: translateY(-.4rem);
 }
 100% {
  transform: translateY(0);
 }
 }

 .d {
 animation: dots 1.5s ease-out infinite;
 }
 .d-2 {
 animation-delay: .5s;
 }
 .d-3 {
 animation-delay: 1s;
 }
 </style>

 Loading<span class="d">.</span><span class="d d-2">.</span><span class="d d-3">.</span>
</app-root>

这样我们就实现了上图的加载效果了,点击这里查看原文

分享几个loading效果的在线素材网:

  • loading.io
  • css-loaders
  • cssload

好了,去创建属于你自己的loading吧!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
二行代码解决全部网页木马
Mar 28 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
Jul 25 Javascript
浅谈使用MVC模式进行JavaScript程序开发
Nov 10 Javascript
对Angular.js Controller如何进行单元测试
Oct 25 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
AngularJS表格添加序号的方法
Mar 03 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
vue上传图片组件编写代码
Jul 26 #Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 #Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 #Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 #Javascript
JavaScript利用fetch实现异步请求的方法实例
Jul 26 #Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 #Javascript
WdatePicker.js时间日期插件的使用方法
Jul 26 #Javascript
You might like
php实现的通用图片处理类
2015/03/24 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
js给selected添加options的方法
2015/05/06 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
工商管理毕业生推荐信
2013/12/24 职场文书
教师远程培训感言
2014/03/06 职场文书
国际贸易求职信
2014/07/05 职场文书
校园之声广播稿
2015/08/18 职场文书
音乐研修感悟
2015/11/18 职场文书
导游词之张家界
2019/10/31 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL