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 相关文章推荐
css值转换成数值请抛弃parseInt
Oct 24 Javascript
js遍历td tr等html元素
Dec 13 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
Angular 理解module和injector,即依赖注入
Sep 07 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
Vue.js双向绑定实现原理详解
Dec 22 Javascript
jQuery is not defined 错误原因与解决方法小结
Mar 19 Javascript
微信小程序中使用javascript 回调函数
May 11 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
微信小程序实现蒙版弹窗效果
Nov 01 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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新闻发布系统教程
2014/05/09 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
html中table数据排序的js代码
2011/08/09 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Django中使用locals()函数的技巧
2015/07/16 Python
Python实现文件复制删除
2016/04/19 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
python中什么是面向对象
2020/06/11 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
python实现简单遗传算法
2020/09/18 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android