1 단계 공유 옆에있는 솔루션을 설명하지 객실 정보 (전화 번호 \ 사람 \ 크기 \ 등) 를 표시해야합니다 : 설정하여 전문가
에게 2 단계 : 대화 상자로드
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};
}
시작하기에 충분합니다. 이 중 어떤 것이 합리적이지 않은지 알려주십시오.
시간과 노력에 감사드립니다! 나는 변호 할 것이다. 내 일을 마치면 한번 시도 해봐. 계속 게시 할 것입니다. Zack –
나는 잠시 동안이 코드로 작업하려고 노력 했었고, 결국 데모 코드를 기반으로 한 쉬운 작업을 여기에 구현하기로 결정했습니다. http://fabricjs.com/events/. 툴팁을 사용하는 대신 마우스 오버 이벤트를 사용하여 필요한 정보로 캔버스 아래의 div를 업데이트했습니다. 이 솔루션은 툴팁만큼 화려하지는 않지만 저에게 도움이됩니다. –
잭이 일하고있어 기쁘다. 이 코드는 MSOffice에서 텍스트 나 그래픽 작업과 비슷하게 도구 팔레트로 텍스트와 이미지를 추적하는 데 실제로 사용됩니다. 코드를 좀 더 이해하기 쉽게하기 위해 할 수있는 일이 있는지 알려주십시오. 이 스크린 샷에서 텍스트 도구를 볼 수 있습니다. http://shineemc.com/samples/shine.png –