mirror of
https://github.com/ant-design/ant-design.git
synced 2025-08-06 16:06:28 +08:00
Loader (#1666)
* update page loader and add page-wrapper, loader end fade in * update index * update index text content * update index text content language * update index loader * update index loader * simplify code
This commit is contained in:
parent
c247e6ee6a
commit
09fbd10e08
17
index.html
17
index.html
@ -13,9 +13,22 @@
|
||||
<body>
|
||||
<div id="react-content">
|
||||
<div class="ant-site-loading">
|
||||
<img width="100" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg" alt="loading..." />
|
||||
<div>A Design Langague</div>
|
||||
<img src='https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg' />
|
||||
<div id="loading-text">A Design Language</div>
|
||||
</div>
|
||||
<script>
|
||||
const content = document.getElementById('loading-text');
|
||||
content.innerHTML = content.innerText.split('').map(function(letter, i) {
|
||||
var className;
|
||||
if (i > 0 && i < content.innerText.length - 1) {
|
||||
className = 'yoyo-x-' + (i % 6);
|
||||
}
|
||||
if (letter.trim() === '') {
|
||||
className += ' blank';
|
||||
}
|
||||
return '<span class="' + className + '">' + letter + '</span>';
|
||||
}).join('');
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
<script src="./index.js"></script>
|
||||
|
@ -10,7 +10,7 @@ body {
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",SimSun,sans-serif;
|
||||
font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", SimSun, sans-serif;
|
||||
line-height: 1.5;
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
@ -84,26 +84,180 @@ a {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
img {
|
||||
animation: siteLoadingCircle 2s ease-in-out infinite;
|
||||
transform-origin: 50% 50%;
|
||||
margin-top: -50px;
|
||||
}
|
||||
div {
|
||||
font-family: lato;
|
||||
color: #777;
|
||||
font-size: 16px;
|
||||
letter-spacing: 2px;
|
||||
transform-style: preserve-3d;
|
||||
display: block;
|
||||
width: 70px;
|
||||
margin: -50px auto 10px;
|
||||
animation: loadTween 2S cubic-bezier(0.785, 0.135, 0.15, 0.86) infinite;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes siteLoadingCircle {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
#loading-text {
|
||||
font-family: lato;
|
||||
color: #777;
|
||||
font-size: 16px;
|
||||
letter-spacing: 2px;
|
||||
> span {
|
||||
display: inline-block;
|
||||
&:first-child {
|
||||
animation: xLeftMatrixR 2s cubic-bezier(0.645, 0.045, 0.355, 1) infinite alternate;
|
||||
}
|
||||
&:last-child {
|
||||
animation: xRightMatrixR 2s cubic-bezier(0.645, 0.045, 0.355, 1) infinite alternate;
|
||||
}
|
||||
&.blank {
|
||||
width: 0.4em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-wrapper {
|
||||
animation: pageEnter .3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
|
||||
}
|
||||
|
||||
.loop-yoyo-load(@index) when (@index >= 0) {
|
||||
.yoyo-x-@{index} {
|
||||
animation: ~"Load@{index}" 2s cubic-bezier(0.645, 0.045, 0.355, 1) infinite alternate;
|
||||
}
|
||||
.loop-yoyo-load(@index - 1);
|
||||
}
|
||||
|
||||
.loop-yoyo-load(5);
|
||||
|
||||
@keyframes loadTween {
|
||||
0% {
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotateY(180deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotateX(-180deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes xLeftMatrixR {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translateX(0px) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes xRightMatrixR {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateX(50px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translateX(50px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translateX(0px) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load5 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, 30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, 30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load4 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, -30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, -30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load3 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, -30px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, -30px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load2 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, 30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(-30px, 30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load1 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, 30px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, 30px) rotate(30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes Load0 {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, -30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
20% {
|
||||
opacity: 0;
|
||||
transform: translate(30px, -30px) rotate(-30deg) scale(1.5, 1.5);
|
||||
}
|
||||
80% {
|
||||
opacity: 1;
|
||||
transform: translate(0, 0) rotate(0deg) scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pageEnter {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import Footer from './Footer';
|
||||
|
||||
export default function App(props) {
|
||||
return (
|
||||
<div>
|
||||
<div className="page-wrapper">
|
||||
<Header {...props} />
|
||||
{props.children}
|
||||
<Footer />
|
||||
|
@ -111,7 +111,6 @@
|
||||
.content-wrapper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: 1850px;
|
||||
margin: auto;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
|
Loading…
Reference in New Issue
Block a user