Transformasi CSS berdasarkan perubahan kelas bersyarat tidak berfungsi apabila menggunakan vuejs dan tailwind
P粉872182023
P粉872182023 2023-08-30 10:21:09
0
1
464
<p>我正在尝试使用 <strong>tailwind</strong> <kod>peralihan</kod> 类来展开侧边栏 <strong>Vuejs 内的 <code><router-link></code> 子菜单</strong> 组件。</p> <pre class="brush:php;toolbar:false;">// templat <div :class="`${index === 0 ? 'mt-2' : ''} sidebar-link sidebar-dropdown-link`" @click="link.open = !link.open" > <div class="flex items-center"> <FontAwesomeIcon :icon="link.icon" class="ikon pautan-bar sisi" /> {{ link.label }} </div> <FontAwesomeIcon :icon="link.open ? ['fas', 'chevron-up'] : ['fas', 'chevron-down']" class="bar sisi-dropdown-link-icon" /> </div> // Ini baris lucu... <div :class="`${link.open ? `h-[${link.sublinks.length * 45}px]` : 'h-0'} sidebar-dropdown-menu`"> <pautan penghala v-for="(subpautan, indeks) dalam pautan.subpautan" :key="indeks" class="pautan-bar sisi mt-1" :to="sublink.route" > <FontAwesomeIcon :icon="sublink.icon" class="ikon pautan-bar sisi pl-3" /> {{ sublink.label }} </router-link> </div></pra> <p>Tingkah laku yang dijangkakan ialah apabila <code>link.open</code> menjadi <code>true</code>, <code> ditakrifkan dalam <strong>baris yang menarik< ;</code>tag/strong> mengembang (atau memaparkan) dengan peralihan 300 milisaat, nilai <kod>tinggi</code>nya telah dilaraskan berdasarkan <code>link.sublinks.length</code> Takrifan nilai, yang kesemuanya menggunakan kelas <kod> Apa yang saya maksudkan ialah: </p> <pre class="brush:php;toolbar:false;">.sidebar-dropdown-menu { @apply w-full overflow-hidden transition-[height] duration-[300ms] }</pre> <p>Jika <code>link.sublinks.length</code> sama dengan <code>3</code>, kelas tersuai yang digunakan ialah <code>h-[135px]</code> ; dan teg <div></kod> dalam <strong>baris lucu</strong> penukaran tidak berfungsi. Alat Pembangun Google Chrome menunjukkan kepada saya <kod>tinggi: 135px</code> </p> <p>Akhir sekali, jika saya menggantikan <code>h-[${link.sublinks.length * 45}px]</code> dengan nilai tetap (cth. <code>h-[200px]< /code>) semuanya berfungsi seperti yang diharapkan. </p> <p>Saya mengesyaki <kod>h-auto</code> mengatasi kelas tersuai ketinggian saya. </p> <p>Saya orang Latin, jadi bahasa Inggeris saya tidak begitu baik. </p> <p>Terima kasih terlebih dahulu. </p>
P粉872182023
P粉872182023

membalas semua(1)
P粉211273535

Saya telah berjaya, tetapi saya tidak suka penyelesaian yang saya temui:

<div
    :style="`${link.open ? `height: ${link.sublinks.length * 45}px` : 'height: 0px'}`"
    class="sidebar-dropdown-menu"
>

Elakkan sahaja menggunakan kelas Tailwind untuk menentukan atribut ketinggian, itu sahaja buat masa ini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan