【发布时间】:2022-01-13 05:06:19
【问题描述】:
我有这段代码可以运行,动画也很好:
<script src="https://unpkg.com/alpinejs@3.7.0/dist/cdn.min.js"></script>
<div x-data="{ open: false }" x-on:click.outside="open = false" x-on:keydown.escape="open = false">
<button x-on:click="open = !open">
Click me
</button>
<div x-show="open" x-transition>
<div>
<ul>
<li>Dogs</li>
<li>Cats</li>
<li>Snakes</li>
</ul>
</div>
</div>
</div>
然后我尝试使用<template> 标签而不是<div> 标签并将x-show 更改为x-if(因为x-show 根本不适用于<template> 标签),如下所示:
<script src="https://unpkg.com/alpinejs@3.7.0/dist/cdn.min.js"></script>
<div x-data="{ open: false }" x-on:click.outside="open = false" x-on:keydown.escape="open = false">
<button x-on:click="open = !open">
Click me
</button>
<template x-if="open" x-transition>
<div>
<ul>
<li>Dogs</li>
<li>Cats</li>
<li>Snakes</li>
</ul>
</div>
</template>
</div>
它可以切换隐藏和显示状态,但根本没有过渡。
知道如何让<template> 标签支持平滑淡入/淡出过渡吗?
【问题讨论】:
-
我正在使用 Alpine.js 。你认为它只能通过 Alpine.js 来完成吗? Alpine.js 的重点不是过多地或仅以非常简单的形式使用 JavaScript 调用和东西。没有查询和东西。但也许可以使用 setTimeout() 函数,但我不知道如何使用。你知道吗?
标签: javascript html css alpine.js