canvas实现的根据填写的文字实时生
根据你的描述,我理解你希望实现这样一个功能:用户在输入框中输入文字,这些文字能够实时地在Canvas画布上显示出来,并且可以自定义字体、颜色、大小等样式。
<input type="text" id="textInput">
<canvas id="myCanvas"></canvas>
canvas {
border: 1px solid #000;
}
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
const textInput = document.getElementById('textInput');
function drawText() {
const text = textInput.value;
ctx.clearRect(0, 0, canvas.width, canvas.height); // 清空画布
ctx.font = '30px Arial'; // 设置字体样式
ctx.fillStyle = 'red'; // 设置填充颜色
ctx.fillText(text, 10, 50); // 在指定位置绘制文本
}
textInput.addEventListener('input', drawText); // 监听输入框变化,实时绘制
drawText
函数:
fillText
方法在指定位置绘制文本。input
事件,每当输入框内容发生变化时,就调用 drawText
函数重新绘制。font
、fillStyle
、textAlign
、textBaseline
等属性来调整文本的样式。shadowColor
、shadowBlur
等属性添加阴影效果,或者使用渐变色来填充文本。
ctx.font = '40px bold Arial';
ctx.fillStyle = ctx.createLinearGradient(0, 0, canvas.width, 0);
ctx.addColorStop(0, 'blue');
ctx.addColorStop(1, 'red');
ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
ctx.shadowBlur = 10;
ctx.fillText(text, 10, 50);
Canvas提供了强大的绘图能力,可以实现各种各样的文本效果。通过结合JavaScript的事件监听和Canvas的绘制方法,我们可以轻松地创建出交互式的文本展示效果。
更多探索:
如果你有更具体的需求,比如:
都可以随时提出。