Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CSS或JavaScript缩放背景图像_Javascript_Html_Css_Background Image_Css Transitions - Fatal编程技术网

使用CSS或JavaScript缩放背景图像

使用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属性与伪元素结合使

我想随着时间的推移缩放div的背景图像,使其看起来像是在放大和缩小(而不是将鼠标悬停在上面-我只是在寻找动画自动启动)。但是,不管我怎么做,背景动画看起来都很不稳定

如果我将div设置为scale,则过渡是平滑的,但它会缩放整个div,而不仅仅是背景图像。关于更多信息,我正在运行最新版本的Chrome,并在Windows和操作系统上进行了尝试。您可以在此处看到一个示例:


建议?我也对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
}