【发布时间】:2017-12-04 04:44:10
【问题描述】:
我有一个 div 显示并定位在另一个元素上。当我对整个身体应用 CSS 变换时,不再正确计算位置。这是javascript:
function Start() {
$('#ScaleBodyBtn').click(function() {
$('body').css({
'transform': 'scale(1.5)',
'transform-origin': 'top left'
});
});
$('#ShowOverlayBtn').click(function() {
var ThePosition = $('#ShowOverlayBtn').offset();
$('#Overlay').css({
'top': ThePosition.top,
'left': ThePosition.left
}).show();
});
}
$(Start);
这是 HTML/CSS
<input id="ScaleBodyBtn" type="button" value="scale body" />
<input id="ShowOverlayBtn" type="button" value="show overlay" />
<div id="Overlay"></div>
#ShowOverlayBtn,
#ScaleBodyBtn {
clear: both;
display: block;
margin: 50px 30px;
}
#Overlay {
display: none;
background: red;
height: 50px;
width: 50px;
position: absolute;
}
这里的the jsFiddle 复制了这个问题。您单击 Show Overlay,它会出现在按钮的正上方。刷新并首先按 Scale Body,这一次当您单击 Show Overlay 按钮时,红色 div 不在正确的位置。
我需要改变什么来解决这个问题?
【问题讨论】:
-
嗨,这是一篇旧帖子,呵呵,但我面临着类似的问题,有些元素在应用比例时将自己定位在远离应有的位置。你想出解决办法了吗?这对我会有帮助。谢谢!
标签: javascript jquery css