如何在 nuxt 中使用 tailwindcss 过渡?

Posted

技术标签:

【中文标题】如何在 nuxt 中使用 tailwindcss 过渡?【英文标题】:How to use tailwindcss transitions in nuxt? 【发布时间】:2021-05-28 11:50:22 【问题描述】:

所以我试图在我的 nuxt 应用程序中使用 tailwindcss 转换,我想基本上使用 vue 转换提供的类名来动画模式

这是我的 Modal.vue 文件代码

<template>
  <!-- This example requires Tailwind CSS v2.0+ -->
  <transition
    name="modal"
    enter-class="ease-out duration-300 opacity-0"
    enter-to-class="opacity-100"
    leave-class="opacity-100"
    leave-to-class="ease-out duration-200 opacity-0"
  >
    <div class="fixed z-10 inset-0 overflow-y-auto">
      <div
        class="flex items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0"
      >
        <!--
      Background overlay, show/hide based on modal state.

      Entering: "ease-out duration-300"
        From: "opacity-0"
        To: "opacity-100"
      Leaving: "ease-in duration-200"
        From: "opacity-100"
        To: "opacity-0"
    -->
        <div
          class="fixed inset-0 transition-opacity"
          aria-hidden="true"
          @click="handleCloseModal"
        >
          <div class="absolute inset-0 bg-gray-500 opacity-75"></div>
        </div>

        <!-- This element is to trick the browser into centering the modal contents. -->
        <span
          class="hidden sm:inline-block sm:align-middle sm:h-screen"
          aria-hidden="true"
          >&#8203;</span
        >
        <!--
      Modal panel, show/hide based on modal state.

      Entering: "ease-out duration-300"
        From: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
        To: "opacity-100 translate-y-0 sm:scale-100"
      Leaving: "ease-in duration-200"
        From: "opacity-100 translate-y-0 sm:scale-100"
        To: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
    -->
        <div
          class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full"
          role="dialog"
          aria-modal="true"
          aria-labelledby="modal-headline"
        >
          <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
            <div class="sm:flex sm:items-start">
              <div
                class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10"
              >
                <!-- Heroicon name: outline/exclamation -->
                <svg
                  class="h-6 w-6 text-red-600"
                  xmlns="http://www.w3.org/2000/svg"
                  fill="none"
                  viewBox="0 0 24 24"
                  stroke="currentColor"
                  aria-hidden="true"
                >
                  <path
                    stroke-linecap="round"
                    stroke-linejoin="round"
                    stroke-
                    d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
                  />
                </svg>
              </div>
              <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
                <h3
                  class="text-lg leading-6 font-medium text-gray-900"
                  id="modal-headline"
                >
                  Deactivate account
                </h3>
                <div class="mt-2">
                  <p class="text-sm text-gray-500">
                    Are you sure you want to deactivate your account? All of
                    your data will be permanently removed. This action cannot be
                    undone.
                  </p>
                </div>
              </div>
            </div>
          </div>
          <div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
            <button
              type="button"
              class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm"
              @click="handleCloseModal"
            >
              Deactivate
            </button>
            <button
              type="button"
              class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
            >
              Cancel
            </button>
          </div>
        </div>
      </div>
    </div>
  </transition>
</template>

<script> 
export default 
  methods: 
    handleCloseModal() 
      this.$emit("close-modal");
    
  
;
</script>

我尝试通过将其添加到名称中来处理常规转换并且它有效,但这似乎有问题

提前感谢好心人

【问题讨论】:

【参考方案1】:

使用“enter-active-class”代替“enter-class” 这是对我有用的解决方案:

 <transition
           enter-active-class="duration-300 ease-out opacity-0"
           enter-to-class="opacity-100"
           leave-active-class="duration-200 ease-in"
           leave-class="opacity-100"
           leave-to-class="opacity-0"
 >

【讨论】:

【参考方案2】:

所以我自己想通了,以某种方式将持续时间更改为进入课堂使其正常工作。

【讨论】:

以上是关于如何在 nuxt 中使用 tailwindcss 过渡?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vercel zeit 上使用 Tailwindcss 2.0 部署 nuxt.js 项目

Nuxt:找不到模块'@tailwindcss/jit'

Nuxt 出现错误:无法解析“@tailwindcss/base”

使用 create-nuxt-app 时已弃用的软件包 Tailwindcss

使用“nuxt build”时动态创建的类不可用 - tailwindcss nuxtjs

TailwindCSS 自定义主题不适用于 Nuxt.js