有没有办法让CSS动画对角工作?

时间:2013-05-14 14:49:27

标签: css3 css-animations

我制作了一个CSS动画,它会为文本设置动画效果。效果目前仅适用于水平。我想知道有没有办法可以改变动画的方向,使它看起来像一个逼真的对角线闪耀?

这是我目前的代码:

h1 {

font-family: 'BebasRegular', sans-serif;
font-size: 150px;
padding-bottom: 100px;
padding-top: 50px;
background: #E9AB17 -webkit-gradient(linear, left top, right top, from(#e8a917), to(#f4b011), color-stop(0.5, #fff)) 0 0 no-repeat;
-webkit-background-size: 155px;
color: rgba(255, 255, 255, 0.1);
-webkit-background-clip: text;
-webkit-animation-name: shine;
-webkit-animation-duration: 5s;
-webkit-animation-iteration-count: infinite;    
}

@-webkit-keyframes shine
{
0%
{
background-position: top left;
}
28%,100%
{
background-position: top right;
}
}

2 个答案:

答案 0 :(得分:3)

试试这个:

@keyframes shine {
    0% {
        transform: translatex(0px) translatey(0px)
    }
    100% {
        transform: translatex(100px) translatey(100px);
    }
}

jsFiddle

MDN translate documentation

答案 1 :(得分:1)

您可以在结束位置从上到下更改:

@-webkit-keyframes shine
{
0%
{
background-position: top left;
}
28%,100%
{
background-position: bottom right;
}
}

但是,很可能效果不明显。原因是这是一个块元素,并且很可能它延伸到远远超出文本末尾的右侧。因此,对角线非常平坦。你可以检查这个删除

-webkit-background-clip: text;

属性;你现在将看到所有的h1和背景运动。

为了使它更“对角”,你需要让它更“宽”;更简单的方法就是指定一个宽度。

另外,如果你想制作光泽效果,我会选择径向渐变而不是线性渐变。如果您不知道,请选中colorzilla并在方向中选择径向

顺便说一下,你的问题听起来很熟悉: - )