2015-01-09 3 views
2

저는 Fabric JS 프로젝트를 사용하여 바닥을 방의 위치와 매핑합니다.
각 객실 위치에 아이콘을 추가했습니다. 마우스 위로 아이콘을 가리킬 때마다 텍스트 상자 팝업 (예 : jquery 툴팁)을 표시하려고합니다.
텍스트 상자 내가 this google group post를 찾았지만 아무도 정말 this link캔버스 내의 Fabric JS 이미지에 텍스트 상자 팝업 (Jquery 툴팁 또는 유사)을 추가하는 방법은 무엇입니까?

답변

7

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}; 
} 

시작하기에 충분합니다. 이 중 어떤 것이 합리적이지 않은지 알려주십시오.

+0

시간과 노력에 감사드립니다! 나는 변호 할 것이다. 내 일을 마치면 한번 시도 해봐. 계속 게시 할 것입니다. Zack –

+0

나는 잠시 동안이 코드로 작업하려고 노력 했었고, 결국 데모 코드를 기반으로 한 쉬운 작업을 여기에 구현하기로 결정했습니다. http://fabricjs.com/events/. 툴팁을 사용하는 대신 마우스 오버 이벤트를 사용하여 필요한 정보로 캔버스 아래의 div를 업데이트했습니다. 이 솔루션은 툴팁만큼 화려하지는 않지만 저에게 도움이됩니다. –

+1

잭이 일하고있어 기쁘다. 이 코드는 MSOffice에서 텍스트 나 그래픽 작업과 비슷하게 도구 팔레트로 텍스트와 이미지를 추적하는 데 실제로 사용됩니다. 코드를 좀 더 이해하기 쉽게하기 위해 할 수있는 일이 있는지 알려주십시오. 이 스크린 샷에서 텍스트 도구를 볼 수 있습니다. http://shineemc.com/samples/shine.png –