Html 设置div背景位置动画(CSS)
我想动画我的div的背景。背景位置应该从左上到右下移动。由于某种原因,什么也没有发生。我不知道为什么Html 设置div背景位置动画(CSS),html,css,Html,Css,我想动画我的div的背景。背景位置应该从左上到右下移动。由于某种原因,什么也没有发生。我不知道为什么 .test { width: 50%; height: 250px; background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%), linear-gradient(to bottom, green 0%, blue 100%); background
.test {
width: 50%;
height: 250px;
background: linear-gradient(to right, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%), linear-gradient(to bottom, green 0%, blue 100%);
background-size: 100% 100%;
animation: moving-gradient 1s infinite;
}
@keyframes moving-gradient {
0% {
background-position: left top;
}
100% {
background-position: right bottom;
}
}
JSFiddle:
您必须为背景动画使用固定值才能工作:
@keyframes moving-gradient {
0% {
background-position: 0,0;
}
100% {
background-position: 200px 250px, 200px 250px;
}
}
因此,您还必须为元素设置固定宽度:
.test {
width: 200px;
根据评论编辑
如果将“宽度”设置为视口单位,它也会起作用:
.test {
width: 50vw;
height: 250px;
在动画中
100% {
background-position: 50vw 250px, 50vw 250px;
}
我不知道为什么,但查看Firebug中的
computed
选项卡显示视口单位实际上被解释为固定的px
值您必须为背景动画使用固定值才能工作:
@keyframes moving-gradient {
0% {
background-position: 0,0;
}
100% {
background-position: 200px 250px, 200px 250px;
}
}
因此,您还必须为元素设置固定宽度:
.test {
width: 200px;
根据评论编辑
如果将“宽度”设置为视口单位,它也会起作用:
.test {
width: 50vw;
height: 250px;
在动画中
100% {
background-position: 50vw 250px, 50vw 250px;
}
我不知道为什么,但查看Firebug中的
computed
选项卡可以发现视口单位实际上被解释为固定的px
值,而不是移动背景图像,您是否尝试过移动元素
translate
是在屏幕上移动元素的一种非常有效且平滑的方法(因为它具有抗锯齿功能),此外,您还可以轻松使用百分比
一个可能有助于解释的例子
尽管我可能完全误解了您想要实现的目标。您是否尝试过移动元素而不是移动背景图像
translate
是在屏幕上移动元素的一种非常有效且平滑的方法(因为它具有抗锯齿功能),此外,您还可以轻松使用百分比
一个可能有助于解释的例子
虽然我可能完全误解了你想要实现的目标。这是一种愚蠢的方式,但确实有效
使用4 div和translate
HTML
这是一种愚蠢的方法,但有效
使用4 div和translate
HTML
但由于某些原因,百分比值不起作用抱歉链接不好…是的,百分比有一种奇怪的行为,如果将其设置为非常大的值,它只会移动一点…如果将元素宽度设置为50Vw,将动画高度设置为相同的固定值,它会起作用:我不知道为什么,但查看Firebug中的
computed
选项卡显示,视口单位实际上被解释为固定的px
值,但由于某些原因,百分比值不起作用抱歉,链接不好……是的,百分比有一种奇怪的行为,如果将其设置为非常大的值,它只会移动一个值有一点……如果您确实将元素宽度设置为50vw,将动画高度设置为相同的固定值,那么它将起作用:我不确定为什么,但查看Firebug中的computed
选项卡,可以发现视口单位实际上被解释为固定的px
值