【发布时间】:2018-03-16 15:44:34
【问题描述】:
我在这里学习本教程:https://cloudcannon.com/deconstructions/2014/11/15/facebook-content-placeholder-deconstruction.html
创建一个虚拟加载器。不幸的是,本教程包含固定的像素值,我希望它可以在各种尺寸的屏幕上工作。所以我调整了这样的动画:
@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 秒。我应该改用过渡/变换动画吗?
这里是一个笨蛋:https://plnkr.co/edit/X8PBIUYmAC11LCUV9uTy?p=preview
【问题讨论】:
-
理想情况下,您应该使用
100vw和-100vw。将速度提高到5s,它的速度与您现在的速度相同。 Example -
谢谢@misterManSam,您的回答效果最好,但它如此简单。完美!