Kami 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 unsur-unsur, atau bahkan HTML Divs) dalam saiz penurunan, di mana semua sudut bawah kiri mereka menyentuh titik yang sama.
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 boleh menakutkan, atau bahkan menjadi kemas. Jadi, kami bekerja dengan elemen "lebih mudah" untuk mendapatkan bentuk dan kesan yang sama.
Sebagai contoh, inilah caranya kita perlu mewakili bentuk biru terbesar menggunakan .
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.
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:
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
);
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!
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula
Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven ' t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan
Beli atau Membina adalah perdebatan klasik dalam teknologi. Membina barang sendiri mungkin berasa lebih murah kerana tidak ada item baris pada bil kad kredit anda, tetapi
Pada minggu ini, roundup, sebuah bookmarklet yang berguna untuk memeriksa tipografi, menggunakan menunggu untuk mengamuk dengan cara modul JavaScript mengimport satu sama lain, ditambah Facebook ' s
Terdapat banyak platform analisis untuk membantu anda mengesan data pelawat dan penggunaan di laman web anda. Mungkin paling penting Google Analytics, yang digunakan secara meluas