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 相关文章推荐
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
jquery.jstree 增加节点的双击事件代码
Jul 27 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
JavaScript学习笔记之数组的增、删、改、查
Mar 23 Javascript
jQuery动态添加
Apr 07 Javascript
学习Angular中作用域需要注意的坑
Aug 17 Javascript
Vue实现双向绑定的方法
Dec 22 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
Vue 全家桶实现移动端酷狗音乐功能
Nov 16 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 Javascript
微信小程序实现签字功能
Dec 23 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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
?繁体转换的class
2006/10/09 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
php简单获取复选框值的方法
2016/05/11 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
浅析python协程相关概念
2018/01/20 Python
python实现梯度下降算法
2020/03/24 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
keras实现多种分类网络的方式
2020/06/11 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
就业自荐信
2013/12/04 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
小学语文教学反思范文
2016/03/03 职场文书
辞职信怎么写?
2019/05/21 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
AJAX学习笔记
2021/05/18 Javascript
Java 数据结构七大排序使用分析
2022/04/02 Java/Android