我尝试根据用户点击的位置在div
中插入图片。这似乎工作正常,除非div
是可滚动的,然后无论我们滚动到哪里,图像的位置都保持不变。图像应保留在div
内相对于内容的相同位置。
代码:
$("#a").on("click",function(e){
var top=e.pageY-$(this).position().top,
left=e.pageX-$(this).position().left;
$('.imgajoutee').remove();
$(this).append("<img src='https://upload.wikimedia.org/wikipedia/commons/0/0c/Dive_hand_signal_OK_1.png' class='imgajoutee' style='top:"+top+"px;left:"+left+"px;'/>");
});
答案 0 :(得分:1)
您需要做几件事:
img
CSS,使其position
值为absolute
而不是fixed
#a
)以获得position:relative
top
计算应更改为使用.offset()
而不是position()
,并为容器添加.scrollTop()
值。这会计算容器滚动的程度。考虑到所有这些因素,see updated JSFiddle:
<强> CSS 强>
#a { position:relative; }
img { position: absolute; }
<强> JS 强>
$("#a").on("click",function(e) {
var top = $(this).scrollTop() + e.pageY - $(this).offset().top,
left = e.pageX-$(this).offset().left;
...
});