我对CSS3动画很陌生,所以这对我来说很难。我正试图在我的网站上的顶部栏上创建一种反射效果,让用户知道该栏。
所以我实际上想要一个反射从酒吧的左边走到右边,而且很容易放松。
我有两个问题...
1.)我不知道为什么这个thinkg不适用于background-size:cover;
或background-size:100% 100%
?当我指定一个像素宽度时它确实有用,但我只想让它总是100%,因为条本身总是100%宽。
2。)我不知道怎么能让这个东西暂停3秒钟。因此,反射效果应该在页面加载时开始,然后暂停3秒然后重复。
这可能吗?
<div class="masked">
<span class="inner">
This is some Text
</span>
</div>
background: linear-gradient(-45deg, rgba(85,85,85,1) 0%,rgba(85,85,85,1) 48%,rgba(255,255,255,1) 50%,rgba(85,85,85,1) 52%,rgba(85,85,85,1) 100%);
background-size:1500px 20px;
animation-name: masked-animation;
animation-duration: 2s;
animation-delay: 1s;
animation-iteration-count: 1;
animation-timing-function: ease-in-out;
DEMO http://jsfiddle.net/7Akwf/
有人可以帮助我吗?
答案 0 :(得分:2)
要让动画暂停3秒并继续,您必须先设置animation-iteration-count: infinite;
,然后使用@keyframes
定义来控制延迟,方法是使用百分比作为暂停。
在下面的演示中,我使用0%-50%
作为完整动画。然后我使用%50-%100
作为暂停。
如果你想使用background-size: 100% 100%;
,你需要设置你的background-position: -2000px 0;
,这样如果你想让你的动画滚动,它就完全偏离了屏幕的左侧。您还需要调整@keyframes
,以便在完成后完全从右侧滚动。由于这个额外的距离,您需要相应地调整您的持续时间,以获得您正在寻找的效果。
演示:http://jsfiddle.net/ThinkingStiff/jaRW3/
@keyframes masked-animation {
0% {background-position: -2000px 0;}
50% {background-position: 2000px 0;}
100% {background-position: 2000px 0;}
}
此处我使用6s
个持续时间,其中50%
将是暂停,%50
将是动画,或者每个3秒。它也会在开始前等待3秒钟。这使用了速记语法,节省了大量空间。
animation: masked-animation 6s ease-in-out 3s infinite;
background-position: -2000px 0;
background-repeat: no-repeat;
background-size: 100% 100%;