2012-02-23 5 views
7

사용자로부터 입력을받을 수있는 방법이 있다면 궁금합니다. 자바 스크립트를 통해 캔버스 요소에있는 texbox (또는 사용자가 글을 쓰는 것을 볼 수있는 곳)에 입력하는 것이 좋습니다.캔버스 요소 내부에 입력 양식

답변

7

절대 위치 지정을 사용하여 캔버스 요소 상단에 텍스트 상자를 배치합니다. 당신은 상대가 당신의 이상 물건을 팝업으로가는 곳의 기준이 <div>의 방향이 이와

<div style="position:relative;width:800px;height:800px"> 
    <canvas width="800" height="800"></canvas> 
    <input type="text" style="position:absolute;left:100px;top:300px;width:600px; etc...." /> 
</div> 

, 나는 아마도 ...

모달 배경을 추가합니다 :

내 제안 레이아웃은 뭔가처럼

희망 하시겠습니까? -ck

+0

감사합니다. 아직 시도하지 않았지만 아마도 작동 할 것 같습니다. 입력 된 텍스트를 보류로 변환하려면 어떻게해야합니까? JavaScript를 통해 – HolyThunder

+1

을 (를)를 사용하십니까? 당신은 그것의'.value' 속성을 통해 접근 할 것입니다. – ckozl

+0

고마워, 나는 상대적으로 JS에 익숙하다. – HolyThunder

7

질문은 조금 오래되었지만 절대 위치 지정에 대한 대안을 제시하고자했습니다. 배경 이미지 (아마도 텍스트 상자보다 큰 div)를 설정할 수 있습니다. 여기

$('#backDrop').css('background-image', 'url(' + document.getElementById('canvas').toDataURL() + ')'); 

예로서 jsfiddle있어 :

HTML :

...<canvas id="canvas"></canvas> <div id="backDrop">...[your textbox]</div>... 

자바 스크립트를 여기에 예입니다.

here에서 설명한 것처럼 배경 이미지 속성을 설정 한 시점에서 캔버스의 스냅 샷을 찍습니다. 배경 이미지를 설정 한 후 캔버스에 변경 한 내용은 다시 설정하지 않는 한 반영되지 않지만 대부분의 경우 원하는 내용 일 수 있습니다.

2

또한 다음 그것을 시도 할 수 있습니다 :

<div style="margin:0px;padding:0px;position:absolute;width:[amount by programmer];height:[amount by programmer];border-style:solid;border-color:[if wanted];"> 
<canvas style="width:700px;height:700px;"></canvas> 
<input type="text" style="position:absolute;width:[amount by programmer];height:[amount by programmer];"/></div>