如何在页面加载时隐藏闪烁的对话框内容?

How to hide flashing dialog content when page is loading?

在 tailwindcss、Alpinejs 页面上,我使用通过单击按钮打开的模态。 问题是在加载页面时我看到闪烁的对话框内容。 我试图将 hidden class 设置为 modal window 并在 init 方法的末尾 将 isPageLoaded 变量设置为 true

<div class="overflow-auto border-2 border-grey-900" x-data="app()" x-init="appInit()">

    <div class="w-full h-full">
        <button
            type="button"
            class="bg-transparent border border-gray-500 hover:border-indigo-500 text-gray-500 hover:text-indigo-500 font-bold py-2 px-4 rounded-full"
            @click="showModal = true"
        >Open modal
        </button>
    </div>
    <!--Overlay-->

    <div class="overflow-auto w-full h-full hidden" style="background-color: rgba(0,0,0,0.5)" x-show="showModal" :class="{ 'fixed inset-0 z-10 flex items-center justify-center': showModal, 'visible' : isPageLoaded }">

...
<script>

    function app() {
        return {
            showModal : false,
            isPageLoaded : false,

            appInit: function () {
                console.log('appInit::')
                this.isPageLoaded= true
            },

        }
    }

</script>

因此,我没有看到闪烁的对话框内容,但我无法显示对话框模式,我尝试将其设置为:

'visible' : isPageLoaded

我的意思是切换隐藏 class 我默认设置。但那是行不通的。

请检查一下笔: https://codepen.io/petrogromovo/pen/yLMNVLr

提前致谢!

使用 x-cloak 隐藏元素,直到 Alpine 完全加载。 https://github.com/alpinejs/alpine#x-cloak

x-cloak 属性添加到您要隐藏的任何元素,并将此规则添加到您的样式表。

[x-cloak] { display: none; }