gpt4 book ai didi

javascript - 如何将文本框弹出窗口(Jquery 工具提示或类似的)添加到 Canvas 中的 Fabric JS 图像?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:11 24 4
gpt4 key购买 nike

我正在做一个 Fabric JS 项目,用它的房间位置映射楼层。
在每个房间位置,我都添加了一个图标。我希望每次鼠标悬停在图标上方时弹出一个文本框(例如 jquery 工具提示)。
文本框应显示房间信息(电话号码\人\大小\等)我找到了 this google group post ,但除了分享之外没有人真正描述解决方案 this link

最佳答案

第 1 步:设置观察者

第二步:加载对话框

第 3 步:确定边界矩形在页面上的位置并移动对话框。

canvas.observe('mouse:over', function (e) {
console.log("Everyday I'm hovering");
showImageTools(e.target);
});
canvas.observe('mouse:out', function (e) {
$('#imageDialog').remove();
});
function showImageTools (e) {
var url = 'dialog/imageDialog.htm';
$.get(url, function(data) {
// Don't add it twice
if (!$('#imageDialog').length) {
$(body).append(data);
}
moveImageTools();
});

function moveImageTools () {
var w = $('#imageDialog').width();
var h = $('#imageDialog').height();
var e = canvas.getActiveObject();
var coords = getObjPosition(e);
// -1 because we want to be inside the selection body
var top = coords.bottom - h - 1;
var left = coords.right - w - 1;
$('#imageDialog').show();
$('#imageDialog').css({top: top, left: left});
}
function getObjPosition (e) {
// Get dimensions of object
var rect = e.getBoundingRect();
// We have the bounding box for rect... Now to get the canvas position
var offset = canvas.calcOffset();
// Do the math - offset is from $(body)
var bottom = offset._offset.top + rect.top + rect.height;
var right = offset._offset.left + rect.left + rect.width;
var left = offset._offset.left + rect.left;
var top = offset._offset.top + rect.top;
return {left: left, top: top, right: right, bottom: bottom};
}

这应该足以让您入门。如果其中任何一个没有意义,请告诉我。

关于javascript - 如何将文本框弹出窗口(Jquery 工具提示或类似的)添加到 Canvas 中的 Fabric JS 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27870315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com