我有一个容器,我想要缩放它的大小(放大和缩小),但同时也希望容器的扩展/收缩形式占据空间,而不仅仅是重叠在其他内容上。
更新
有一张图片,其中有一些 absolute
的 div ,它们被放置在坐标中,当缩小或放大时必须保持它们的相对位置(这就是为什么我使用 scale 的原因)。
var b = document.getElementById("outer");
var scale = 1;
function increase() {
scale += 0.1
b.style.transform = `scale(${scale})`;
}
function decrease() {
scale -= 0.1
b.style.transform = `scale(${scale})`;
}
#outer {
overflow-x: auto position: relative;
transform-origin: left top;
}
.pointer {
width: 20px;
height: 20px;
background-color: orange;
position: absolute;
}
#a1 {
top: 50px;
left: 150px;
}
#a2 {
top: 150px;
left: 50px;
}
#a3 {
top: 250px;
left: 550px;
}
<div>
<button onclick="increase()">Increase</button>
<button onclick="decrease()">Decrease</button>
</div>
<div id=outer>
<img src="http://via.placeholder.com/600x350" />
<div id="a1" class='pointer'>
</div>
<div id="a2" class='pointer'>
</div>
<div id="a3" class='pointer'>
</div>
</div>
<div>
please don't cover me
</div>
希望不要使用第三方库(除了jQuery),但可以考虑。
.style.left
和top是用来干什么的?” - A. Lleft
和top
,使它们的位置也随着缩放而比例变化。 - kukkuz