我正在使用 Canvas 和 Javascript 开发一个框样式项目,但我无法按照我想要的方式旋转文本(从下到上写)。
(来源:hostpic.xyz)
我遵循了一个教程(https://newspaint.wordpress.com/2014/05/22/writing-rotated-text-on-a-javascript-canvas/)并尝试在我的代码中进行调整,但我不能做了。
您可以在下面的 JSFiddle 链接上找到代码,您可以在其中输入文本,并且在 JSFiddle 示例中应将其写为“品牌”字样。
一切都在 init() 函数中:
function init() {
var elem = document.getElementById('elem');
var circle_canvas = document.createElement("canvas");
var context = circle_canvas.getContext("2d");
var img = new Image();
img.src = "https://unblast.com/wp-content/uploads/2018/11/Vertical-Product-Box-Mockup-1.jpg";
context.drawImage(img, 0, 0, 500, 650);
circle_canvas.width = 500;
circle_canvas.height = 650;
context.fillStyle = "#000000";
//context.textAlign = 'center';
var UserInput = document.getElementById("UserInput");
context.save();
context.translate( circle_canvas.width - 1, 0 );
UserInput.oninput = function() {
context.clearRect(0, 0, 500, 650);
context.drawImage(img, 0, 0, 500, 650);
var text = UserInput.value;
console.log(text);
if (text.length < 12) {
context.rotate(3*Math.PI/2);
console.log("-12");
context.font = "50px Righteous";
context.fillText(text, -350, -170);
context.restore();
} else {
context.rotate(3*Math.PI/2);
context.font = "25px Righteous";
context.fillText(text, -350, -170);
context.restore();
}
}
elem.appendChild(circle_canvas);
}
init();
我在 context.rotate() 函数中尝试了很多值,但无论如何我的文本是颠倒的。
(来源:hostpic.xyz)