【发布时间】:2017-01-24 20:07:57
【问题描述】:
我有两个带有背景图像的 div,两个 div 都有相同的图像,但每个都有不同的颜色。图像是波形
假设 div1 的图像是灰色的,而 div2 的图像是绿色的。
必须做的是在开始时显示带有 image1 的 div。 div2 不可见(宽度设置为 0)。 然后页面上发生了一些事情,并且必须显示进度。 然后div2的宽度根据进度用Javascript增加并覆盖div1。
所以目标是根据进度 X% 的空间显示绿色图像,其余的显示灰色图像
因此,两个 div 需要在相同的位置,当然也需要相同的大小。
它应该是什么样子的示例:
我试过这样:
HTML:
<div class="left" id="container">
<div class="image original" style="background-image: url(/PATH/TO/IMAGE)">
</div>
<div class="image green" style="background-image: url(/PATH/TO/IMAGE_GREEN)">
</div>
</div>
CSS:
.image {
position: absolute;
top: 0;
height: 100%;
width: 100%;
background-repeat: no-repeat;
}
#container{
position: relative;
.original {
width: 100%;
}
.green, .blue{
width: 0%;
}
}
使用 Javascript 我会增加绿色的宽度。 这已经可以了,但我的问题是背景图像比 div 容器大。所以不是整个图像在 div 容器中可见。 我必须添加
background-size: 100% auto
到 .image 类,以便整个图像包含在 div 中。
但如果我这样做,图像会响应。因此,如果我现在将 div2 的宽度从 0 增加到 100%,则在此过程中,div2 的背景图像不会与 div1 的背景图像完全重叠,因为整个图像都被压缩在较小的 div2 容器中。
然后它看起来像这样:
但它们需要匹配。
我怎样才能实现这样的目标?
【问题讨论】:
-
等等,什么?你能把问题描述清楚吗?
-
我更新了问题,我希望现在能更好地理解:)。
-
也许所有东西都是全宽的,在一个带有
overflow: hidden的容器中,并且只需移动你的图像而不是调整它的大小? -
我认为我们需要查看您正在使用的图像,以便了解您关心的问题。坦率地说,这里可能需要一个功能更强大的 sn-p。太多未知了。
-
图片是波形,我现在加了
标签: javascript html css