


Cara membuat carta animasi dataran bersarang menggunakan topeng
Mar 18, 2025 am 11:03 AMKami mempunyai banyak jenis carta yang terkenal: bar, donat, garis, pai, anda namakannya. Semua perpustakaan carta popular menyokong ini. Kemudian ada jenis carta yang tidak mempunyai nama. Lihat carta Dreamt-up ini dengan dataran yang disusun (bersarang) yang dapat membantu menggambarkan saiz relatif, atau bagaimana nilai yang berbeza dibandingkan dengan satu sama lain:
Apa yang kita buat
Tanpa sebarang interaktiviti, mewujudkan reka bentuk ini agak mudah. Salah satu cara untuk melakukannya adalah untuk menyusun unsur-unsur (misalnya SVG
Tetapi perkara menjadi lebih rumit apabila kita memperkenalkan beberapa interaktiviti. Inilah caranya: Apabila kita menggerakkan tetikus kita ke atas salah satu bentuk, kita mahu yang lain memudar dan bergerak.
Kami akan mencipta bentuk yang tidak teratur ini menggunakan segi empat tepat dan topeng - literal
Sekarang, sebelum kita mula, anda mungkin tertanya -tanya jika alternatif yang lebih baik untuk SVG menggunakan bentuk tersuai. Itu pasti kemungkinan! Tetapi melukis bentuk dengan
Sebagai contoh, inilah caranya kita perlu mewakili bentuk biru terbesar menggunakan
<svg viewbox="0 0 320 320" width="320" height="320"> <path d="M320 0H0V56H264V320H320V0Z" fill="#264653"></path> </svg>
Jika 0H0V56 ... tidak masuk akal kepada anda, lihat "Sintaks Laluan SVG: Panduan Illustrated" untuk penjelasan yang menyeluruh mengenai sintaks.
Asas -asas carta
Memandangkan set data seperti ini:
Taipkan DataseTeNtry = { Label: String; Nilai: Nombor; }; taip dataset = dataseTentry []; const rawdataset: dataset = [ {label: 'buruk', nilai: 1231}, {label: 'permulaan', nilai: 6321}, {label: 'membangun', nilai: 10028}, {label: 'dicapai', nilai: 12123}, {label: 'contoh', nilai: 2120} ];
... Kami mahu berakhir dengan SVG seperti ini:
<svg viewbox="0 0 320 320" width="320" height="320"> <rect width="320" ketinggian="320" y="0" fill="..."> </rect> <rect width="264" ketinggian="264" y="56" fill="..."> </rect> <rect width="167" ketinggian="167" y="153" fill="..."> </rect> <rect width="56" ketinggian="56" y="264" fill="..."> </rect> <rect width="32" ketinggian="32" y="288" fill="..."> </rect> </svg>
Menentukan nilai tertinggi
Ia akan menjadi jelas dalam seketika mengapa kita memerlukan nilai tertinggi. Kita boleh menggunakan math.max () untuk mendapatkannya. Ia menerima sejumlah argumen dan mengembalikan nilai tertinggi dalam satu set.
const datasethighestvalue: nombor = math.max ( ... rawDataset.map ((entri: dataseTentry) => entry.value) );
Oleh kerana kita mempunyai dataset kecil, kita hanya dapat memberitahu bahawa kita akan mendapat 12123.
Mengira dimensi segi empat tepat
Jika kita melihat reka bentuk, segi empat tepat yang mewakili nilai tertinggi (12123) merangkumi seluruh kawasan carta.
Kami sewenang -wenangnya memilih 320 untuk dimensi SVG. Oleh kerana segi empat tepat kami adalah dataran, lebar dan ketinggian adalah sama. Bagaimana kita boleh membuat 12123 sama dengan 320? Bagaimana dengan nilai "istimewa" yang kurang? Berapa besar segi empat tepat 6321?
Ditanya cara lain, bagaimana kita memetakan nombor dari satu julat ([0, 12123]) kepada yang lain ([0, 320])? Atau, dalam istilah matematik yang lebih banyak, bagaimanakah kita skala pembolehubah kepada selang [A, B]?
Untuk tujuan kami, kami akan melaksanakan fungsi seperti ini:
const remapvalue = ( Nilai: Nombor, Frommin: Nombor, Frommax: Nombor, Tomin: Nombor, Tomax: Nombor ): nombor => { pulangan ((nilai - darimin) / (dariMax - Frommin)) * (Tomax - Tomin) Tomin; }; remapvalue (1231, 0, 12123, 0, 320); // 32 remapvalue (6321, 0, 12123, 0, 320); // 167 remapvalue (12123, 0, 12123, 0, 320); // 320
Oleh kerana kami memetakan nilai ke julat yang sama dalam kod kami, bukannya lulus minimum dan maksimum berulang kali, kami boleh membuat fungsi pembungkus:
const valueremapper = ( Frommin: Nombor, Frommax: Nombor, Tomin: Nombor, Tomax: Nombor ) => { kembali (nilai: nombor): nombor => { kembali remapvalue (nilai, darimin, darimax, tomin, tomax); }; }; const remapdatasetvaluetosvgdimension = valueremapper ( 0, DataSethestValue, 0, svgdimension );
Kita boleh menggunakannya seperti ini:
remapdatasetvaluetosvgdimension (1231); // 32 remapdatasetvaluetosvgdimension (6321); // 167 remapdatasetvaluetosvgdimension (12123); // 320
Membuat dan memasukkan elemen DOM
Apa yang tersisa berkaitan dengan manipulasi DOM. Kita perlu membuat
Atas ialah kandungan terperinci Cara membuat carta animasi dataran bersarang menggunakan topeng. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

CSS Blok halaman yang diberikan kerana pelayar melihat CSS dalam talian dan luaran sebagai sumber utama secara lalai, terutamanya dengan stylesheet yang diimport, header sejumlah besar CSS sebaris, dan gaya pertanyaan media yang tidak dapat dioptimumkan. 1. Ekstrak CSS kritikal dan membenamkannya ke HTML; 2. Kelewatan memuatkan CSS bukan kritikal melalui JavaScript; 3. Gunakan atribut media untuk mengoptimumkan pemuatan seperti gaya cetak; 4. Memampatkan dan menggabungkan CSS untuk mengurangkan permintaan. Adalah disyorkan untuk menggunakan alat untuk mengekstrak CSS utama, menggabungkan REL = "Preload" pemuatan asynchronous, dan menggunakan media yang ditangguhkan dengan munasabah untuk mengelakkan pemisahan yang berlebihan dan kawalan skrip kompleks.

Thebestapproachforcssdependonstantheproject'ssspecificneeds.forlargerprojects, externalcssisbetterduetomaintainabilityability;

Tidak, cssdoesnothavetobeinlowercase.however, menggunakanLowerCaseisRecommendorfendfor: 1) Consistencyandreadability, 2) Mengelakkaningerrorsinrelatedtechnologies, 3) potensiformanceBenefits, dan4) peningkatan yang lebih baik.

Cssismostlycase-insensitive, buturlsandfontfamilynamesarecase-sensitif.1) propertiesandvalueslikecolor: merah; arenotcase-sensitif.2) urlsmustmatchtheserver'scase, mis.,

AutoPrefixer adalah alat yang secara automatik menambah awalan vendor ke atribut CSS berdasarkan skop penyemak imbas sasaran. 1. Ia menyelesaikan masalah mengekalkan awalan secara manual dengan kesilapan; 2. Bekerja melalui borang pemalam postcss, menghuraikan CSS, menganalisis atribut yang perlu diawali, dan menjana kod mengikut konfigurasi; 3. Langkah-langkah penggunaan termasuk memasang pemalam, menetapkan senarai pelayar, dan membolehkan mereka dalam proses membina; 4. Nota termasuk tidak menambah awalan secara manual, menyimpan kemas kini konfigurasi, awalan tidak semua atribut, dan disyorkan untuk menggunakannya dengan preprocessor.

Csscounterscanautomaticallynumbersectionsandlists.1) useCounter-resettoinitialize, counter-incrementToinCrease, andCounter () orcounters () todisplayvalues.2) CombinWithjavascriptfordynamicContentToenSureAccurateupdates.

Dalam CSS, nama pemilih dan atribut adalah sensitif kes, manakala nilai, warna yang dinamakan, URL, dan atribut tersuai adalah sensitif kes. 1. Nama pemilih dan atribut adalah kes-tidak sensitif, seperti warna latar belakang dan warna latar belakang adalah sama. 2. Warna heksadesimal dalam nilai adalah sensitif kes, tetapi warna bernama adalah sensitif kes, seperti merah dan merah tidak sah. 3. URL adalah sensitif kes dan boleh menyebabkan masalah pemuatan fail. 4. Sifat tersuai (pembolehubah) adalah sensitif kes, dan anda perlu memberi perhatian kepada konsistensi kes apabila menggunakannya.

Function-gradient () functionIncsscreatesculculargradientsthatrotatecolorstopsaroundroentroint.1.ISIISIDEALFORPIECHARTS, Progressindicators, Colorwheels, andDecorativeBackgrounds.2.itworksByDefiningColorStopsatSpecificles, OpsticalStarting
