我在這裏按照本教程:https://cloudcannon.com/deconstructions/2014/11/15/facebook-content-placeholder-deconstruction.htmlCSS - 無限的動畫(移動到右裝載梯度)閃爍
創建一個虛擬裝載機。不幸的是,本教程包含固定的像素值,我希望它可以在各種尺寸的屏幕上工作。所以我調整這樣的動畫:
@keyframes placeHolderShimmer {
0% {
background-position: -30vw 0
}
100% {
background-position: 30vw 0
}
}
.c-animated-background {
animation-duration: 1.5s;
animation-fill-mode: forwards;
animation-iteration-count: infinite;
animation-name: placeHolderShimmer;
animation-timing-function: linear;
background: fff;
background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);
height: 100%;
width: 100%;
position: relative;
padding-top: 50px;
-webkit-backface-visibility: hidden
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body class="c-animated-background">
</body>
</html>
不幸的是在動畫結束之後1.5秒,灰色區域跳躍向前或向後,這取決於予設定的關鍵幀背景位置值。我怎樣才能防止這種情況並使轉換順利?此外,動畫效果似乎比我想象的要強烈 - 當我想用我的Macbook 2016在Chrome瀏覽器中查看背景元素時,它會掛起大約15秒。我是否應該使用轉換/轉換動畫代替?
這裏是一個plunker:https://plnkr.co/edit/X8PBIUYmAC11LCUV9uTy?p=preview
理想情況下,你會使用'100vw'和'-100vw'。將速度提高到5秒,速度與現在的速度相同。 [例子](http://jsbin.com/jemigixuco/edit?html,css,output) – misterManSam
謝謝@misterManSam,你的回答最好,但它很簡單。完善! – Phil