我正在创建一个富文本编辑器,我正在尝试在javascript动态插入的图像的左上角放置一个删除按钮div。因此,我必须在运行时确定div的位置。但是,我无法让它完全位于左上角。这是我的代码:
function showDeleteButton(image) {
var rect = image.getBoundingClientRect();
var top = rect.top + $(document).scrollTop();
var left = rect.left + $(document).scrollLeft();
var deleteButton = $(".delete_button")[0];
deleteButton.style.visibility = 'visible';
deleteButton.style.top = top + "px";
deleteButton.style.left = left + "px";
}
非常感谢任何帮助!
答案 0 :(得分:1)
html
<div>
<div id="delete_button"></div>
<img src"foo.png" />
</div>
和css
#delete_button{
position:absolute;
top:0;
left:0
z-index:1;
}
答案 1 :(得分:1)
您可以将删除按钮设置为body
元素的直接子项。然后,您可以测量悬停图像的偏移量,并将按钮重新定位到其左上角。
CSS
.delete_button {
position:absolute;
display:none;
}
的jQuery
$(function() {
var deleteButton = $(".delete_button");
var hovered_image = false;
$('img').mouseenter(function(e) {
hovered_image = this;
deleteButton.show();
var img = $(this);
var offset = img.offset();
deleteButton.css({
top: offset.top + 'px',
left: offset.left + 'px'
});
}).mouseleave(function(e) {
if (e.relatedTarget === deleteButton[0]) {
return;
}
deleteButton.hide();
hovered_image = false;
});
deleteButton.mouseleave(function(e){
if (e.relatedTarget === hovered_image) {
return;
}
deleteButton.hide();
hovered_image = false;
});
deleteButton.click(function(e){
hovered_image.parentNode.removeChild(hovered_image);
deleteButton.hide();
});
});
position:absolute
。
position:fixed;
CSS 的替代解决方案