Menggunakan classList dalam fungsi Javascript untuk menambah kelas CSS, tetapi gaya bercanggah kerana kelas terbaharu tidak diutamakan
P粉738821035
P粉738821035 2023-09-10 17:10:38
0
2
468

Fungsi saya mengira bilangan kad yang kelihatan pada skrin dan jika semuanya dipaparkan, ia akanarrow-up类添加到我的图标中,如果某些卡片仍然对用户隐藏,则arrow添加-downikon.

const showMoreIcon = document.querySelector('.cta-icon'); function myFunction(){ const btnIcon = cardsOnShow >= cards.length ? 'arrow-up' : 'arrow-down'; showMoreIcon.classList.add(btnIcon); }

Ini berfungsi, tetapi saya dapat melihat dalam DOM bahawa kelas yang betul ditambahkan padaspan中,因为我期望它,因为添加了arrow-down类首先(在显示所有可见卡片之前,用户必须多次展开内容) - 然后,尽管添加了arrow-up类,但它不会覆盖arrow-down。p>

Bagaimana pula dengan memastikan untuk menambaharrow-up时,arrow-down被删除,反之亦然?我之前曾使用toggleuntuk mencapai ikon buka/tutup yang mudah, tetapi ini tidak berfungsi kerana ia mungkin berkembang beberapa kali sebelum ditutup.

P粉738821035
P粉738821035

membalas semua (2)
P粉579008412

Saya syorkan padamkan kursus yang anda tidak perlukan lagi:

function myFunction(){ if (cardsOnShow >= cards.length) { showMoreIcon.classList.add('arrow-up') showMoreIcon.classList.remove('arrow-down') } else { showMoreIcon.classList.remove('arrow-up') showMoreIcon.classList.add('arrow-down') } }
    P粉395056196

    Cascading mengambil kira banyak faktor a>, iaitu satu set peraturan yang digunakan untuk menentukan peraturan yang "menang" apabila dua peraturan yang bercanggah digunakan pada elemen yang sama.

    Susunan kelas ditakrifkanpada elemen HTML bukanlah salah satu daripada faktor ini.

    Sama je kalau melata.

    Buangkelas yang tidak sepatutnya digunakan.

    if (cardsOnShow >= cards.length) { showMoreIcon.classList.add("arrow-up"); showMoreIcon.classList.remove("arrow-down"); } else { showMoreIcon.classList.add("arrow-down"); showMoreIcon.classList.remove("arrow-up"); }

    Atau tulis CSS dengan cara yang hanya mengambil berat tentang satu kelas untuk menukar orientasi:

    .arrow { /* arrow up CSS */ } .arrow.invert { /* override the up rule and replace with the down rule }

    Kemudian

    if (cardsOnShow >= cards.length) { showMoreIcon.classList.remove("invert"); } else { showMoreIcon.classList.add("invert"); }

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!