HTML:HTML ввод текста на холсте
<div>
<canvas id="text_box" class="textbox" >
</canvas>
</div>
CSS:
.textbox{
position:absolute;
background: black;
left:100px;
width:750px;
height:100%;
margin: 0;
padding: 0;
border:0;
opacity:0.9;
display:none;
}
JavaScript
function drawCanvas() {
var canvas = document.getElementById("text_box");
var context = canvas.getContext('2d');
context.lineWidth=1;
context.fillRect(0,0,150,150);
context.fillStyle="white";
context.lineStyle="#ffff00";
context.font="12px sans-serif";
context.fillText("testestestsetestsetsetsetset.", 20, 20);
context.rect(0,0,400,400);
alert("test");
}
Когда я открываю этот HTML, текст «тест тест тест тест тест тест test test test "просто превышает ширину холста, поэтому остальная часть не появляется. Я хочу, чтобы холст (прямоугольник) имел полосу прокрутки, если длина текста длинна, поэтому я могу прокрутить вниз, чтобы увидеть весь текст.
Я только что начал, поэтому я не знаком с частью макета (css). может кто-нибудь дать мне совет?
холст не имеет полос прокрутки (если вы не программируете некоторые). Вы должны быть осведомлены о ваших размерах холста и дизайна/рисования соответственно. Посмотрите на [measureText] (https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_text#Advanced_text_measurements), чтобы помочь определить ширину текста, а затем обработать его. –
Запись в 2D-контексте сильно отличается от написания текста в HTML-элементе, таком как DIV. В общем, вы несете ответственность за все: если вы пишете слишком много текста для размера холста (ширины), он остановится на правом краю. – Koen
Ссылка: http://jsfiddle.net/m1erickson/fTQkx/ – Vijay