【发布时间】:2017-11-16 04:43:31
【问题描述】:
请看这个:
如果您单击“获取位置”链接,您将看到红色 div 相对于图像的位置。
现在说这张图片的大小在某个时间点发生了变化。如何根据初始数据获取红色 div 的新位置?
HTML:
<div id="watermark"></div>
<img src="http://placekitten.com/g/320/270" class="small-img">
<div><br><br><a href="#" class="get-pos">Get Pos</a></div>
jQuery:
$(document).ready(function() {
var $watermark = $('#watermark');
$('.get-pos').on('click', function(e) {
e.preventDefault();
var watermark_position = {
top: $watermark.position().top - $('.small-img').position().top,
left: $watermark.position().left - $('.small-img').position().left
};
alert(watermark_position.top + 'px from the top');
alert(watermark_position.left + 'px from the left');
});
});
CSS:
#watermark { background: red; position: absolute; top: 215px; left: 265px; width: 50px; height: 50px; }
【问题讨论】:
-
你绝对需要使用 jQuery 吗?使用 CSS 并且将带有图像和水印的父元素作为子节点可能会更容易。然后无论图片大小,都可以使用定位将其置于右下角。
-
以您的示例为例,如果图像的大小发生变化,您的水印不一定会移动,因此它相对于图像的位置仍然完全相同。我们是假设水印会随着图像的大小而移动,还是您的最终目标是在图像大小发生变化时将水印重新放置在适当的位置?
-
@Steve 你说的最后一句话。
-
@straker 这最终是将水印图像覆盖在另一个图像之上并将其展平。所以css不能用。
-
你到底想做什么?我的意思是你为什么需要获得红色 div 的位置?
标签: javascript jquery