cari
Rumahhujung hadapan webtutorial cssBagaimana untuk mencipta sektor bulatan CSS yang sempurna

Baru-baru ini, saya membina rolet jackpot CSS, sebuah projek yang memberikan cabaran yang unik: menyerlahkan sektor secara dinamik seperti yang ditunjuk oleh jarum kepadanya. Rolet memerlukan responsif dan kiraan sektor berubah-ubah, menolak imej mudah atau penyelesaian SVG. Pengiraan geometri adalah penting.

Pendekatan saya melibatkan pusingan rentang mengelilingi pusat bulatan dan memotongnya di sepanjang jejari. Persediaan awal, diperincikan di bawah (dan tersedia sepenuhnya melalui pautan lebih jauh ke bawah), melibatkan penggayaan asas dan putaran tambahan rentang (360/sectors.length degrees). Ia tidak canggih secara visual pada peringkat ini.

Untuk menyerlahkan sektor, saya memerlukan jarak antara dua titik pada bulatan, diberi jejari dan sudut. Formulanya ialah:

<code>2 * radius * Math.sin(θ / 2)</code>

di mana θ ialah sudut dalam radian. Ditukar untuk kegunaan:

<code>2 * radius * Math.sin(Math.PI / sectors.length)</code>

Seterusnya, saya menangani keratan sektor untuk mengelakkan pertindihan. Percubaan pertama saya menggunakan laluan klip pepenjuru:

<code>clip-path: polygon(100% 0, 0 50%, 100% 100%);</code>

Ini berfungsi dengan baik dengan banyak sektor, tetapi kelemahan menjadi ketara dengan sektor yang lebih sedikit, terutamanya dengan hanya tiga, seperti yang ditunjukkan:

How to create perfect CSS circle sectors

Penyelesaian melibatkan pengiraan titik persilangan antara rentang dan bulatan, memotong dari titik itu ke pusat. Ini membetulkan keratan:

How to create perfect CSS circle sectors

Penyelidikan menghasilkan formula untuk segmen yang dicipta pada sinar mendatar oleh garis yang menghubungkan titik persilangan:

Segmen tengah:

<code>radius * (1 - Math.cos(θ / 2))</code>

Segmen luar:

<code>radius * Math.cos(θ / 2)</code>

(θ dalam radian)

Nisbah antara segmen ini menentukan titik keratan, yang membawa kepada:

<code>const clipPosition = Math.cos(Math.PI / sectors.length) * 100</code>

Yang diperbetulkan clip-path:

<code>{
  'clip-path': `polygon(100% 0, ${clipPosition}% 0, 0 50%, ${
    clipPosition
  }% 100%, 100% 100%)`
}</code>

Hasil akhir berasaskan Vue membenarkan putaran rawak melalui klik tengah dan putaran disasarkan melalui klik sektor. (Pautan ke kod lengkap ditinggalkan, seperti dalam teks asal). Projek ini memberikan pelajaran berharga dalam trigonometri praktikal.

Atas ialah kandungan terperinci Bagaimana untuk mencipta sektor bulatan CSS yang sempurna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Apakah grid CSS?Apakah grid CSS?Apr 30, 2025 pm 03:21 PM

CSS Grid adalah alat yang berkuasa untuk mewujudkan susun atur web yang rumit dan responsif. Ia memudahkan reka bentuk, meningkatkan kebolehcapaian, dan menawarkan lebih banyak kawalan daripada kaedah yang lebih lama.

Apakah CSS Flexbox?Apakah CSS Flexbox?Apr 30, 2025 pm 03:20 PM

Artikel membincangkan CSS Flexbox, kaedah susun atur untuk penjajaran yang cekap dan pengedaran ruang dalam reka bentuk responsif. Ia menerangkan penggunaan Flexbox, membandingkannya dengan grid CSS, dan butiran sokongan penyemak imbas.

Bagaimanakah kita boleh membuat laman web kami responsif menggunakan CSS?Bagaimanakah kita boleh membuat laman web kami responsif menggunakan CSS?Apr 30, 2025 pm 03:19 PM

Artikel ini membincangkan teknik untuk membuat laman web responsif menggunakan CSS, termasuk tag Meta Viewport, grid fleksibel, media cecair, pertanyaan media, dan unit relatif. Ia juga meliputi menggunakan grid CSS dan Flexbox bersama -sama dan mengesyorkan rangka kerja CSS

Apakah harta saiz kotak CSS?Apakah harta saiz kotak CSS?Apr 30, 2025 pm 03:18 PM

Artikel ini membincangkan harta saiz kotak CSS, yang mengawal bagaimana dimensi elemen dikira. Ia menerangkan nilai seperti kotak kandungan, kotak sempadan, dan kotak padding, dan kesannya terhadap reka bentuk susun atur dan penjajaran bentuk.

Bagaimanakah kita boleh menghidupkan CSS?Bagaimanakah kita boleh menghidupkan CSS?Apr 30, 2025 pm 03:17 PM

Artikel membincangkan membuat animasi menggunakan CSS, sifat utama, dan menggabungkan dengan JavaScript. Isu utama adalah keserasian penyemak imbas.

Bolehkah kita menambah transformasi 3D ke projek kami menggunakan CSS?Bolehkah kita menambah transformasi 3D ke projek kami menggunakan CSS?Apr 30, 2025 pm 03:16 PM

Artikel membincangkan menggunakan CSS untuk transformasi 3D, sifat utama, keserasian penyemak imbas, dan pertimbangan prestasi untuk projek web. (Kira -kira aksara: 159)

Bagaimana kita boleh menambah kecerunan dalam CSS?Bagaimana kita boleh menambah kecerunan dalam CSS?Apr 30, 2025 pm 03:15 PM

Artikel ini membincangkan menggunakan kecerunan CSS (linear, radial, mengulangi) untuk meningkatkan visual laman web, menambah kedalaman, fokus, dan estetika moden.

Apakah unsur-unsur pseudo dalam CSS?Apakah unsur-unsur pseudo dalam CSS?Apr 30, 2025 pm 03:14 PM

Artikel membincangkan unsur-unsur pseudo dalam CSS, penggunaannya dalam meningkatkan gaya HTML, dan perbezaan dari kelas pseudo. Menyediakan contoh praktikal.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.