【发布时间】:2020-04-22 16:10:07
【问题描述】:
即使另一个 div 改变高度或宽度,我也需要下面两个 div 中的图像处于相同位置。我尝试从 px 计算 top 和 left 到 % ,但它仍然无法正常工作。我还尝试计算其他 div 的大小百分比,并在其他 div 中添加或删除顶部和左侧的图像,但仍然没有运气。
要检查问题,请将图像拖到第一个 div 内,然后单击提交。现在底部 div 内的图像应该和上面的 div 处于相同的位置,相同的顶部和左侧距离。
请帮忙。谢谢。
这里是小提琴:https://jsfiddle.net/kashyap_s/gLdt62nh
var zoomLevel = 1;
$("#myimage").draggable({
start: function() {
},
stop: function() {
}
});
$('#save').click(function() {
var topcss = $('#myimage').css('top');
var leftcss = $('#myimage').css('left');
var transformcss = zoomLevel;
topcss = topcss.replace('px', '');
leftcss = leftcss.replace('px', '');
topcss = parseInt(topcss);
leftcss = parseInt(leftcss);
var parentWidth = $('#dragDiv').outerWidth()
var parentHeight = $('#dragDiv').outerHeight()
console.log('leftcss', leftcss, 'width', parentWidth)
console.log('topcss', topcss, 'height', parentHeight)
var percentLeft = leftcss / parentWidth * 100;
var percentTop = topcss / parentHeight * 100;
console.log('percentLeft', percentLeft, 'percentTop', percentTop)
transformcss = parseFloat(transformcss).toFixed(2);
var result = {
"top": topcss,
"left": leftcss,
'percentTop': percentTop,
'percentLeft': percentLeft,
'parentWidth': parentWidth,
'parentHeight': parentHeight,
"transform": "scale(" + transformcss + ")"
};
var output = JSON.stringify(result);
console.log('output', output)
$("#newimg").css({
'left': leftcss
});
$("#newimg").css({
'top': topcss
});
});
.transperentimage {
width: 497px;
height: 329px;
border: 1px solid black;
margin: 0 auto;
}
#bigimg {
width: 651px;
height: 431px;
border: 1px solid black;
margin: 0 auto;
}
img {
border: 2px solid red;
padding: 3px;
width: auto;
height: auto;
cursor: move;
max-height: 180px;
}
#newimg {
position: absolute;
max-height: 180px;
width: auto!important;
height: auto!important;
max-width: 100%!important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="transperentimage" id="dragDiv">
<img id="myimage" src="agent.png">
</div>
<button id="save">Save</button>
<div id="bigimg">
<img id="newimg" src="agent.png" />
</div>
【问题讨论】:
-
请edit您的sn-p使用dummyimage.com之类的图像服务,以免图像损坏。另外,请解释在给出的代码中重现问题所需的任何步骤。如果不需要,请删除任何不相关的代码(例如对
draggable的引用)。 -
我已经更新了代码并添加了如何检查问题的描述。
标签: javascript html jquery jquery-ui