Rumah >hujung hadapan web >tutorial js >Tutorial Kanvas HTML5: Pengenalan
Memuatkan pemain ...
Salah satu instrumen yang paling penting dalam toolkit pelukis adalah kanvas mereka. Ia memberi mereka kebebasan untuk mengekspresikan semua jenis perasaan, tanggapan, idea, dan sebagainya, dalam variasi dan kombinasi yang hampir tidak terhad. Dan kebebasan itu hanya dapat dihadkan oleh dua perkara - tahap kemahiran mereka dan imaginasi mereka.Keadaan dalam dunia pembangunan web adalah serupa. Dengan kemajuan HTML5 yang berterusan dan spesifikasi yang kuat, pemaju web telah mendapat keupayaan untuk melakukan perkara -perkara yang mustahil pada masa lalu. Melukis grafik dan membuat animasi secara langsung dalam penyemak imbas kini mungkin benar -benar berkat teknologi yang dipanggil HTML5 Canvas.
apakah kanvas html5?
Apa yang begitu hebat tentang kanvas HTML5?
OK, kanvas hebat. Tetapi apa sebenarnya yang boleh menggunakannya? Mari kita lihat.
Sekarang kita tahu mengapa kita harus belajar kanvas, mari kita lihat asas -asas kanvas HTML5 dan bagaimana untuk mula menggunakannya.
Setiap elemen kanvas HTML5 mesti mempunyai konteks . Konteks ini mentakrifkan API kanvas HTML5 yang akan anda gunakan. Konteks 2D digunakan untuk melukis grafik 2D dan memanipulasi imej bitmap. Konteks 3D digunakan untuk penciptaan grafik 3D dan manipulasi. Yang terakhir sebenarnya dipanggil WebGL dan ia berdasarkan OpenGL es.
Untuk memulakan kanvas, semua yang anda perlukan adalah editor kod dan penyemak imbas dengan sokongan kanvas HTML5. Saya menggunakan teks luhur dan Google Chrome, tetapi anda boleh menggunakan apa sahaja yang anda mahukan.
html kami untuk memulakan akan kelihatan seperti ini:
<span><span><span><canvas</span> id<span>="exampleCanvas"</span> width<span>="500"</span> height<span>="300"</span>></span> </span> <span><!-- OPTION 1: leave a message here if browser doesn't support canvas --> </span> <span><span><span><p</span>></span>Your browser doesn’t currently support HTML5 Canvas. </span> Please check caniuse.com/#feat=canvas for information on browser support for canvas.<span><span><span></p</span>></span> </span> <span><!-- OPTION 2: put fallback content (text, image, Flash, etc.) </span><span> if the browser doesn't support canvas --> </span> <span><span><span></canvas</span>></span></span>
Dan inilah JavaScript kami, yang boleh kami sertakan di bahagian bawah halaman HTML kami:
<span>var canvas = document.getElementById('exampleCanvas'), </span> context <span>= canvas.getContext('2d'); </span> <span>// code examples will continue here...</span>
Secara lalai, penyemak imbas mencipta elemen kanvas dengan lebar 300 piksel dan ketinggian 150 piksel, walaupun ini tidak ditentukan dalam HTML. Anda boleh menukar saiz dengan menentukan lebar dan ketinggian, seperti yang saya lakukan dalam HTML.
Notis juga bahawa kami telah memberikan kanvas satu atribut ID yang akan kami gunakan dalam JavaScript kami. Dan akhirnya, jika anda mahu, anda boleh menggunakan CSS untuk menambah sempadan untuk menjadikan kanvas kelihatan dengan bingkai nipis. Ini tidak diperlukan, ia digunakan sebagai bantuan visual bagi kita untuk melihat sempadan elemen kanvas.
Perhatikan bahawa antara pembukaan dan penutup
JavaScript bermula dengan dua baris. Dalam baris pertama kami membuat pembolehubah yang cache elemen kanvas kami melalui IDnya. Baris kedua mencipta pembolehubah (konteks) yang merujuk konteks 2D untuk kanvas menggunakan fungsi getContext (). Kami akan menggunakan pembolehubah konteks untuk mengakses semua fungsi lukisan kanvas dan sifat.
Dengan kanvas kami bersedia untuk pergi, kami boleh mula bereksperimen dengan API kanvas. Tetapi sebelum itu, mari kita jelaskan beberapa lagi aspek ciri kanvas.
Selain atribut lebar dan ketinggian elemen kanvas, anda juga boleh menggunakan CSS untuk menetapkan saiz elemen kanvas. Walau bagaimanapun, saiz elemen kanvas dengan CSS tidak sama dengan menetapkan atribut lebar dan ketinggian elemen. Ini kerana kanvas sebenarnya mempunyai dua saiz: saiz elemen itu sendiri dan saiz permukaan lukisan elemen.
Apabila anda menetapkan atribut lebar dan ketinggian elemen, anda menetapkan kedua -dua saiz elemen dan saiz permukaan lukisan elemen; Walau bagaimanapun, apabila anda menggunakan CSS untuk mengukur elemen kanvas, anda hanya menetapkan saiz elemen dan bukan permukaan lukisan. Apabila saiz elemen kanvas tidak sepadan dengan saiz permukaan lukisannya, penyemak imbas skala permukaan lukisan agar sesuai dengan elemen.
Kerana ini, adalah idea yang baik untuk menggunakan atribut lebar dan ketinggian elemen kanvas untuk mengukur elemen, bukannya menggunakan CSS.
Dalam ruang 2D, kedudukan dirujuk menggunakan koordinat X dan Y. Paksi x memanjangkan secara mendatar, dan paksi y meluas secara menegak. Pusat ini mempunyai kedudukan x = 0 dan y = 0, yang juga boleh dinyatakan sebagai (0, 0). Kaedah objek kedudukan ini, yang digunakan dalam matematik, dikenali sebagai sistem koordinat Cartesian.
Sistem koordinat kanvas, bagaimanapun, meletakkan asal di sudut kiri atas kanvas, dengan koordinat x meningkat ke kanan dan y koordinat meningkat ke arah bawah kanvas. Jadi tidak seperti ruang koordinat Cartesian standard, ruang kanvas tidak mempunyai mata negatif yang kelihatan. Menggunakan koordinat negatif tidak akan menyebabkan permohonan anda gagal, tetapi objek yang diposisikan menggunakan titik koordinat negatif tidak akan muncul di halaman.
lukisan garis
Pada masa ini garis akan ditarik, tetapi ia masih tidak kelihatan. Untuk menjadikannya kelihatan, kami menggunakan kaedah strok () untuk memaparkan garis dengan warna hitam lalai.
<span><span><span><canvas</span> id<span>="exampleCanvas"</span> width<span>="500"</span> height<span>="300"</span>></span> </span> <span><!-- OPTION 1: leave a message here if browser doesn't support canvas --> </span> <span><span><span><p</span>></span>Your browser doesn’t currently support HTML5 Canvas. </span> Please check caniuse.com/#feat=canvas for information on browser support for canvas.<span><span><span></p</span>></span> </span> <span><!-- OPTION 2: put fallback content (text, image, Flash, etc.) </span><span> if the browser doesn't support canvas --> </span> <span><span><span></canvas</span>></span></span>Lihat contoh garis kanvas pena oleh SitePoint (@SitePoint) pada codepen.
Lukis segi empat tepat
<span>var canvas = document.getElementById('exampleCanvas'), </span> context <span>= canvas.getContext('2d'); </span> <span>// code examples will continue here...</span>Lihat contoh Rectangle Canvas Pena oleh SitePoint (@SitePoint) pada Codepen.
Perhatikan bahawa segi empat tepat diposisikan berhampiran sudut kiri atas.
Lukis teks
context<span>.beginPath(); </span>context<span>.moveTo(50, 50); </span>context<span>.lineTo(250, 150); </span>context<span>.stroke();</span>lihat contoh teks kanvas pena oleh SitePoint (@SitePoint) pada codepen.
Anda harus sedar bahawa walaupun lukisan mudah dengan API kanvas HTML5 mudah, mewujudkan bentuk dan animasi yang kompleks memerlukan beberapa pengetahuan matematik dan fizik. Salah satu buku terbaik mengenai topik ini ialah animasi Yayasan HTML5 dengan JavaScript. Buku ini adalah sumber yang hebat untuk belajar memindahkan sesuatu, dari animasi mudah hingga kompleks.
jika anda ingin belajar di sini adalah beberapa sumber:
Bekerja dengan API kanvas HTML5 "mentah" boleh menjadi pekerjaan yang membosankan. Itulah sebabnya ia adalah idea yang baik apabila anda belajar dengan baik untuk beralih ke perpustakaan kanvas yang baik yang dapat mempercepatkan dan membuat perkembangan kanvas anda lebih mudah.
Berikut adalah beberapa pilihan yang popular:
Satu lagi cara untuk mempercepatkan pembangunan kanvas HTML5 anda adalah dengan menggunakan plugin kanvas AI-> untuk Adobe Illustrator. Anda boleh mendapatkan gambaran keseluruhan plugin dalam artikel ini di SitePoint.
itu sahaja. Saya harap tutorial kanvas HTML5 pengenalan ini memberi anda titik permulaan yang baik untuk meneruskan pembelajaran dan meneroka teknologi yang berkuasa ini.
Soalan Lazim (Soalan Lazim) Mengenai Kanvas HTML5Menambah teks ke kanvas adalah mudah. Anda boleh menggunakan kaedah FillText (Text, X, Y), di mana teks adalah rentetan yang anda ingin tulis, dan x dan y adalah koordinat di mana teks akan bermula. Anda juga boleh menyesuaikan fon, saiz, dan warna teks menggunakan sifat font dan fillstyle.
Bagaimana saya boleh menghidupkan objek dengan kanvas html5? kedua. Setiap redraw dipanggil bingkai, dan perubahan kepada sifat objek dibuat antara bingkai untuk mencipta ilusi pergerakan. Ini biasanya dilakukan dengan menggunakan kaedah RequestAnimationFrame (). Ini bermakna anda tidak boleh melampirkan pengendali acara kepada mereka secara langsung. Walau bagaimanapun, anda boleh mencapai interaktiviti dengan menjejaki sifat objek di JavaScript dan menyusun semula kanvas apabila interaksi berlaku. Simpan kandungan kanvas sebagai imej menggunakan kaedah Todataurl (). Kaedah ini mengembalikan url data yang mengandungi perwakilan imej dalam format yang ditentukan oleh parameter jenis (lalai ke png).
Bolehkah saya menggunakan kanvas HTML5 dalam semua penyemak imbas? Kanvas disokong dalam semua pelayar moden, termasuk Chrome, Firefox, Safari, Opera, dan Edge. Walau bagaimanapun, ia tidak disokong dalam Internet Explorer 8 atau lebih awal.
Atas ialah kandungan terperinci Tutorial Kanvas HTML5: Pengenalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!