Transformasi CSS berdasarkan perubahan kelas bersyarat tidak berfungsi apabila menggunakan vuejs dan tailwind
P粉872182023
2023-08-30 10:21:09
<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>
Saya telah berjaya, tetapi saya tidak suka penyelesaian yang saya temui:
Elakkan sahaja menggunakan kelas Tailwind untuk menentukan atribut ketinggian, itu sahaja buat masa ini.