使用CSS或JavaScript缩放背景图像
我想随着时间的推移缩放div的背景图像,使其看起来像是在放大和缩小(而不是将鼠标悬停在上面-我只是在寻找动画自动启动)。但是,不管我怎么做,背景动画看起来都很不稳定 如果我将div设置为scale,则过渡是平滑的,但它会缩放整个div,而不仅仅是背景图像。关于更多信息,我正在运行最新版本的Chrome,并在Windows和操作系统上进行了尝试。您可以在此处看到一个示例:使用CSS或JavaScript缩放背景图像,javascript,html,css,background-image,css-transitions,Javascript,Html,Css,Background Image,Css Transitions,我想随着时间的推移缩放div的背景图像,使其看起来像是在放大和缩小(而不是将鼠标悬停在上面-我只是在寻找动画自动启动)。但是,不管我怎么做,背景动画看起来都很不稳定 如果我将div设置为scale,则过渡是平滑的,但它会缩放整个div,而不仅仅是背景图像。关于更多信息,我正在运行最新版本的Chrome,并在Windows和操作系统上进行了尝试。您可以在此处看到一个示例: 建议?我也对js解决方案持开放态度,只是对javascript不太熟悉。谢谢 我会将csstransform属性与伪元素结合使
建议?我也对js解决方案持开放态度,只是对javascript不太熟悉。谢谢 我会将css
transform
属性与伪元素结合使用
.site-main-banner {
position: relative;
overflow: hidden;
}
.site-main-banner:after {
content: “”;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
background-image: url(...);
// put your animation here
}
我无法向您发送一个完全有效的示例,因为我目前正在地铁里使用手机,但我希望您能理解。我会将css
transform
属性与伪元素结合使用
.site-main-banner {
position: relative;
overflow: hidden;
}
.site-main-banner:after {
content: “”;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
background-image: url(...);
// put your animation here
}
我无法向您发送一个完整的工作示例,因为我目前正在地铁里打电话,但我希望您能理解我的想法。尝试使用
变换:缩放([values])代码>在动画中。
使用transform
元素有助于应用缩放动画。
看看这个。我调整了你的一些代码(因为我只编辑了你的css动画,所以没有调整太多)。尝试使用变换:缩放([values])代码>在动画中。
使用transform
元素有助于应用缩放动画。
看看这个。我调整了你的一些代码(因为我只编辑了你的css动画,所以没有调整太多)。将你的背景分离到主横幅后面自己的元素中,这样你就可以单独应用关键帧动画来变换背景的比例
body,html{
保证金:0;
填充:0;
}
.场地空间背景{
位置:固定;高度:100%;宽度:100%;
背景:#1A1939无重复中心;
背景图片:url(https://preview.ibb.co/m8kxST/static_banner_new.jpg);
背景附件:固定;
背景尺寸:封面;
动画:收缩5个无限交替步骤(60);
}
@关键帧收缩{
0% {
变换:比例(1.2)
}
100% {
变换:比例(1.0)
}
}
将背景分离到主横幅后面自己的元素中,以便可以应用关键帧动画来分别变换背景的比例
body,html{
保证金:0;
填充:0;
}
.场地空间背景{
位置:固定;高度:100%;宽度:100%;
背景:#1A1939无重复中心;
背景图片:url(https://preview.ibb.co/m8kxST/static_banner_new.jpg);
背景附件:固定;
背景尺寸:封面;
动画:收缩5个无限交替步骤(60);
}
@关键帧收缩{
0% {
变换:比例(1.2)
}
100% {
变换:比例(1.0)
}
}
我查看了这一点,发现scale属性可以缩放背景图像和div的内容。我最近的尝试是通过动画更改背景大小。我遇到的问题是,动画会产生起伏的缩放,而不是平滑的缩放。向Chrome抱怨,Firefox会使其平滑。问题似乎在于他们试图避免抗锯齿,但他们的算法混合了位置center
就失败了。请注意,即使此处不相关,如果您想要平滑,也可能需要删除步骤。
的可能重复。我已经查看了这一点,并且知道scale属性会缩放背景图像和div的内容。我最新的尝试是通过动画更改背景大小。我遇到的问题是,动画会产生起伏的缩放,而不是平滑的缩放。向Chrome抱怨,Firefox会使其平滑。问题似乎在于他们试图避免抗锯齿,但他们的算法混合了位置center
就失败了。请注意,即使与此无关,如果您希望平滑,也可能希望摆脱步骤。谢谢!我试过了,效果很好,但是动画仍然不稳定-它不能顺利地放大/缩小。是的,我忘了告诉你,用transform:scale()属性而不是background-size设置动画。谢谢!我试过了,效果很好,但动画仍然不稳定,不能顺利放大/缩小。是的,我忘了告诉你,为变换设置动画:缩放()属性而不是背景大小。您还可以提高动画速度,使其看起来更漂亮。您还可以提高动画速度,使其看起来更漂亮。这是正确的答案。动画背景图像已被认为是急促或粗糙这工作完美!我还删除了步骤(60),这是顺利的,运行良好。非常感谢你!这是正确的答案。动画背景图像已被认为是急促或粗糙这工作完美!我还删除了步骤(60),这是顺利的,运行良好。非常感谢你!
.site-main-banner {
position: relative;
overflow: hidden;
}
.site-main-banner:after {
content: “”;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
background-image: url(...);
// put your animation here
}