Jadual Kandungan
Pertama, saya buat beberapa tag
Tetapkan imej latar belakang
Grid gaya
Gaya Gaya
Kuadrat animasi
Nah, mungkin animasi harus menjadi pilihan ...
Itu sahaja!

Depan Papan Semak

Mar 28, 2025 am 10:12 AM

Depan Papan Semak

Saya masih ingat ketika berusia sepuluh tahun, sepupu saya datang untuk melawat rumah saya. Dia adalah anak yang sejuk, jenis kanak -kanak yang akan membawa cakera permainan catur yang dia memprogramkan dirinya. Versi caturnya adalah sejuk seperti dia sendiri, kerana sebahagian daripada lembaga itu hilang selepas setiap langkah.

Apa yang lebih sejuk? Setiap bahagian yang hilang di papan akan menunjukkan gambar yang sangat indah.

Saya fikir idea yang sama boleh membuat beberapa antara muka pengguna yang sangat sejuk. Ia hanya mungkin tidak ada interaksi pengguna yang diperlukan untuk memaparkan latar belakang, ia boleh dimainkan hanya sebagai animasi. Ini adalah hasil akhir saya:

Idea ini mudah, dan terdapat banyak cara lain untuk mencapainya, tetapi ini adalah idea yang saya ikuti ...

Pertama, saya buat beberapa tag

Imej boleh diproses sebagai latar belakang dalam CSS pada elemen body , atau beberapa yang direka untuk menjadi saiz tertentu<div> pada elemen. Oleh itu, masalah ini tidak diperlukan untuk masa ini. Tetapi lembaga itu menyeronokkan. Ini adalah corak dengan kata -kata grid CSS yang ditulis di atasnya, jadi saya menggunakan elemen sebagai bekas grid dengan banyak yang lain di dalamnya<code><div> elemen. Saya tidak tahu berapa banyak dataran/dataran/apa sahaja yang ada untuk papan catur undang -undang, jadi saya hanya memilih nombor 7 dari udara tipis dan kemudian mengikatnya untuk mendapatkan 49 kotak.<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;div&gt; &lt;div&gt;&lt;/div&gt; &lt;div&gt;&lt;/div&gt; &lt;/div&gt;</pre><div class="contentsignin">Salin selepas log masuk</div></div> <p>Ya, tulis semua ini<code><div> Unsur -unsur menyakitkan, dan JavaScript pasti dapat membantu. Tetapi jika saya hanya bereksperimen dan hanya memerlukan kemudahan pemaju, menggunakan Haml boleh membantu:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> .Grid - 49.Times lakukan %div</pre><div class="contentsignin">Salin selepas log masuk</div></div> <p> Hasil akhir adalah sama. Sama ada cara, ini memberi saya semua tanda yang saya perlukan untuk memulakan reka bentuk gaya!</p> <h2 id="Tetapkan-imej-latar-belakang"> Tetapkan imej latar belakang</h2> <p> Sekali lagi, ini boleh berlaku sebagai <code>background-image pada body atau elemen lain, bergantung kepada bagaimana ia digunakan - selagi ia meliputi seluruh ruang. Oleh kerana saya memerlukan bekas grid, saya memutuskan untuk menggunakannya.

 .Checkerboard {
  Latar Belakang-imej: URL ('walrus.jpg');
  Latar Belakang: Cover;
  /* Sifat lain mungkin diperlukan untuk mencari gambar dengan betul*/
}
Salin selepas log masuk

Kecerunan adalah sebahagian daripada fail imej raster, tetapi saya boleh mengendalikannya dengan bijak dengan beberapa jenis lapisan pada elemen body , menggunakan unsur-unsur pseudo, seperti :after . Malangnya, ini betul-betul teknologi biasa yang kini direka oleh CSS-Tricks.

Grid gaya

Ya, saya menggunakan grid CSS. Membuat grid 7 × 7 sangat mudah.

 .Checkerboard {
  Latar Belakang-imej: URL ('walrus.jpg');
  Latar Belakang: Cover;
  paparan: grid;
  Grid-template-lajur: Ulang (7, 1FR);
  grid-template-baris: ulangi (7, 1fr);
}
Salin selepas log masuk

Saya fikir ia akan menjadi lebih baik apabila kita melihat aspect-ratio disokong secara meluas, sekurang-kurangnya jika saya memahaminya dengan betul. Masalah saya sekarang ialah grid tidak mengekalkan sebarang perkadaran. Ini bermakna blok papan catur akan menjadi sangat diperah pada saiz viewport yang berbeza. tidak bagus. Jika ini sangat penting, kita boleh melakukan beberapa helah kecil dalam tempoh ini, tetapi saya memutuskan untuk menyimpannya seperti itu.

Gaya Gaya

Mereka bergantian antara kelabu putih dan gelap, jadi:

 .Checkerboard> Div {
  latar belakang warna: #fff;
}
.Checkerboard> div: nth-child (walaupun) {
  latar belakang warna: #2F2F2F;
}
Salin selepas log masuk

Percaya atau tidak, tanda dan gaya kami dilakukan! Selebihnya adalah ...

Kuadrat animasi

Semua animasi yang perlu dilakukan adalah menukar setiap persegi dari opacity: 1; kepada opacity: 0; , dan animasi CSS adalah sempurna untuk ini.

 @keyframes poof {
  ke {
    Kelegapan: 0;
  }
}
Salin selepas log masuk

Luar Biasa! Saya tidak perlu menetapkan kerangka utama Start! Apa yang perlu saya lakukan ialah memanggil animasi di dataran.

 .Checkerboard> Div {
  nama animasi: poof;
  Animasi-jangkauan: 0.25s;
  Animasi-Fill-Mode: ke hadapan;
  Latar Belakang: #ffff;
}
Salin selepas log masuk

Ya, saya boleh menggunakan sifat singkatan animasi di sini, tetapi saya sering mendapati lebih mudah untuk memisahkan sifat konstituennya secara berasingan kerana ... baik, mereka terlalu banyak dan sukar untuk dibaca dan dikenali dalam satu baris.

Jika anda tertanya-tanya mengapa animation-fill-mode diperlukan di sini, itu kerana ia menghalang animasi dari gelung kembali ke permulaan animasi apabila ditetapkan ke forwards . Dalam erti kata lain, apabila animasi selesai, setiap persegi akan kekal opacity: 0; bukannya muncul semula.

Saya benar-benar mahu melakukan sesuatu yang bijak untuk menghubungkan animation-delay blok, tetapi saya berlari ke beberapa halangan dan akhirnya memutuskan untuk melepaskan usaha saya untuk menggunakan CSS asli 100% dan beralih ke beberapa SCS ringan. Dengan cara ini saya dapat melangkah melalui semua dataran dan menggunakan fungsi yang agak standard untuk menarik sebahagiannya beralih untuk setiap persegi. Jadi, maaf kerana beralih tiba -tiba! Itu hanya sebahagian daripada perjalanan.

 $ lajur: 7;
$ baris: 7;
$ sel: $ lajur * $ baris;

@for $ i dari 1 hingga $ sel {
  .Checkerboard> div: nth-child (#{$ i}) {
    Animasi-Delay: (Rawak ($ ​​sel) / $ lajur) s;
  }
}
Salin selepas log masuk

Mari Pecahkannya:

  • Pembolehubah dengan bilangan lajur grid ( $columns ), bilangan baris grid ( $rows ) dan jumlah sel ( $cells ). Yang terakhir adalah produk dari dua yang pertama berlipat ganda bersama. Jika kita tahu bahawa kita sentiasa bekerja dalam grid persegi yang sempurna, maka kita boleh melakukan beberapa refactoring, menggunakan eksponen untuk mengira bilangan sel.
  • Kemudian bagi setiap contoh sel antara jumlah 1 dan $cells (49 dalam kes ini), setiap persegi individu akan mendapat animation-delay berdasarkan nilai :nth-child() . Jadi persegi pertama adalah div:nth-child(1) , kemudian div:nth-child(2) , dan sebagainya. Semak CSS yang disusun dalam demo dan anda akan melihat bagaimana ia mengembang semua.
 / * Ya, autoprefixer ada di sana ... */
.Checkerboard> Div: nth-Child (1) {}
.Checkerboard> Div: nth-Child (2) {}
/ * dll */
Salin selepas log masuk
  • Akhirnya, animation-delay adalah pengiraan yang mengambil nombor rawak antara 1 dan jumlah $cells , membahagikan bilangan $columns , dan menambah detik selepas nilai. Adakah ini cara terbaik? Saya tidak mempunyai idea. Ia datang untuk bermain -main dengan sesuatu dan mencari sesuatu yang terasa "betul" kepada anda. Ini terasa "betul" kepada saya.

Saya benar -benar ingin mendapatkan kreatif dan menyesuaikan sifat dengan CSS dan bukannya menggunakan SCSS. Saya suka sifat dan nilai tersuai boleh dikemas kini di sisi klien, manakala nilai -nilai yang dikira dalam SCSS disusun dan dibiarkan tidak berubah pada masa membina. Sekali lagi, ini adalah tepat di mana saya benar -benar mahu beralih ke JavaScript. Walau bagaimanapun, saya telah menyediakan katil dan hanya boleh tidur di atasnya.

Jika anda melihat CSS yang disusun sebelum ini, anda akan melihat nilai yang dikira:

 .Checkerboard> Div: nth-Child (1) {
  Animasi-Delay: 4.5714285714S;
}

.Checkerboard> Div: nth-Child (2) {
  Animasi-Delay: 5.2857142857S;
}

.Checkerboard> Div: nth-Child (3) {
  Animasi-Delay: 2.7142857143S;
}

.Checkerboard> Div: nth-Child (4) {
  Animasi-Delay: 1.5714285714S;
}
Salin selepas log masuk

Nah, mungkin animasi harus menjadi pilihan ...

Sesetengah orang sensitif terhadap gerakan dan pergerakan, jadi lebih baik mengubah tetapan supaya gaya dan animasi dataran hanya ditetapkan jika pengguna menyukainya. Kami mempunyai pertanyaan media untuk mencapai matlamat ini!

 Skrin @media dan (lebih suka-dikurangkan-gerakan: tidak ada pilihan) {
  .Checkerboard> Div {
    nama animasi: poof;
    Animasi-jangkauan: 0.25s;
    Animasi-Fill-Mode: ke hadapan;
    Latar Belakang: #ffff;
  }
  .Checkerboard> div: nth-child (walaupun) {
    Latar Belakang: #2F2F2F;
  }
}
Salin selepas log masuk

Itu sahaja!

Atas ialah kandungan terperinci Depan Papan Semak. 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

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!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1672
14
Tutorial PHP
1277
29
Tutorial C#
1257
24
Perbandingan pembekal bentuk statik Perbandingan pembekal bentuk statik Apr 16, 2025 am 11:20 AM

Mari kita cuba menyusun istilah di sini: "Penyedia Borang Statik." Anda membawa html anda

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Berita Platform Mingguan: Atribut Memuat HTML, Spesifikasi ARIA Utama, dan Bergerak Dari IFRAME ke Shadow Dom Berita Platform Mingguan: Atribut Memuat HTML, Spesifikasi ARIA Utama, dan Bergerak Dari IFRAME ke Shadow Dom Apr 17, 2025 am 10:55 AM

Pada minggu ini, berita platform, Chrome memperkenalkan atribut baru untuk memuatkan, spesifikasi aksesibiliti untuk pemaju web, dan gerakan BBC

Beberapa tangan dengan elemen dialog HTML Beberapa tangan dengan elemen dialog HTML Apr 16, 2025 am 11:33 AM

Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven &#039; t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan

Kertas kerja Kertas kerja Apr 16, 2025 am 11:24 AM

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

Berita Platform Mingguan: Bookmarket Jarak Teks, Menunggu Tahap Teratas, Penunjuk Memuatkan AMP Baru Berita Platform Mingguan: Bookmarket Jarak Teks, Menunggu Tahap Teratas, Penunjuk Memuatkan AMP Baru Apr 17, 2025 am 11:26 AM

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 &#039; s

Di manakah 'Langgan Podcast' pautan ke? Di manakah 'Langgan Podcast' pautan ke? Apr 16, 2025 pm 12:04 PM

Untuk sementara waktu, iTunes adalah anjing besar dalam podcasting, jadi jika anda mengaitkan "Langgan Podcast" untuk suka:

Pilihan untuk menganjurkan analisis berasaskan bukan JavaScript anda sendiri Pilihan untuk menganjurkan analisis berasaskan bukan JavaScript anda sendiri Apr 15, 2025 am 11:09 AM

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

See all articles