Mengira lebar rentetan menggunakan JavaScript tidak serta-merta mudah, terutamanya apabila menggunakan muka taip bukan monospace. Di sini, kami meneroka penyelesaian menggunakan kaedah Canvas.measureText dalam HTML 5.
Untuk menggunakan Canvas.measureText, kami mencipta konteks kanvas dan menetapkannya gaya fon yang dikehendaki. Kemudian, kami menggunakan kaedah measureText untuk mengukur lebar teks yang ditentukan.
function getTextWidth(text, font) { const canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas")); const context = canvas.getContext("2d"); context.font = font; const metrics = context.measureText(text); return metrics.width; }
Contohnya, untuk mengira lebar "hello there!" dalam fon "bold 12pt arial", kita boleh lakukan:
console.log(getTextWidth("hello there!", "bold 12pt arial")); // close to 86
Jika kita mahu menggunakan saiz fon elemen tertentu, kita boleh menggunakan getCanvasFont fungsi utiliti:
const fontSize = getTextWidth(text, getCanvasFont(myEl));
Berbanding dengan kaedah berasaskan DOM, kaedah Kanvas mempunyai beberapa kelebihan:
Tanda aras jsperf menunjukkan bahawa kaedah Kanvas dan caching kaedah berasaskan DOM mempunyai prestasi yang sama, kecuali dalam Firefox yang kaedah Kanvas adalah lebih pantas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Lebar Teks dalam JavaScript Menggunakan Kaedah Kanvas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!