ホームページ >ウェブフロントエンド >CSSチュートリアル >「クラブに参加」モーダルとフェージング コンテンツを使用して登録を促す方法
Web サイトを閲覧し、手の届かないところにある興味深いコンテンツを垣間見て、無制限にアクセスできるように「クラブに参加」するよう促すシンプルなモーダルを想像してみてください。この繊細かつ効果的なデザインは、行動を促しながら好奇心を刺激します。このチュートリアルでは、Nuxt 3 の PrimeVue の Dialog コンポーネントを使用して、ユーザーを引き込む優雅なコンテンツ フェード効果を備えたこのようなエクスペリエンスを構築します。
注: これは、バニラ JS で、または PrimeVue を使用せずに簡単に設計できます。
心理的効果に焦点を当てながら、この魅力的なモーダル エクスペリエンスを作成してみましょう。ユーザーがコンテンツのスニペットをプレビューできるので、クラブに参加したくなるものになります。
目標はシンプルです。ユーザーがログインしていないときに、背景のコンテンツをフェードアウトしながら「クラブに参加」モーダルを表示して、その下にあるものを示唆します。この手法は、強力な動機となる好奇心を利用してサインアップを促進します。
join-the-club.vue ファイルを作成し、基本的なスクリプトとテンプレートをセットアップします。
<script setup> const showLoginDialog = ref(true); // Controls the modal visibility const email = ref(''); // Holds the user's email input // Dynamic body class to manage overflow const body_class = computed(() => ({ overflow: showLoginDialog.value, })); // Join the club function (placeholder for now) const joinClub = async () => { console.log('User email:', email.value); }; // Placeholder function for sign-in click const onSigninClicked = (event) => { console.log('Sign-in clicked'); }; </script>
ここでは、次のように定義します。
PrimeVue の Dialog コンポーネントを使用して、エレガントで邪魔にならず、目的を重視したモーダルを作成します。モーダルは明確な行動喚起を提供し、意思決定プロセスを簡素化します。
<template> <Body :class="body_class" /> <!-- Background overlay with fade effect --> <div v-if="showLoginDialog"> <ul> <li> <strong>Content Preview</strong> : The gradient overlay provides a teaser of what’s underneath, enticing the user to explore.</li> <li> <strong>PrimeVue Dialog</strong> : This non-dismissable modal focuses the user’s attention while still being friendly.</li> </ul> <hr> <p><strong>2220+ FREE</strong> <u><b><strong>RESOURCES</strong></b></u> <strong>FOR DEVELOPERS!! ❤️</strong> ?? <strong><sub><strong>(updated daily)</strong></sub></strong></p> <blockquote> <p>1400+ Free HTML Templates<br><br> 351+ Free News Articles<br><br> 67+ Free AI Prompts<br><br> 315+ Free Code Libraries<br><br> 52+ Free Code Snippets & Boilerplates for Node, Nuxt, Vue, and more!<br><br> 25+ Free Open Source Icon Libraries</p> </blockquote> <p>Visit dailysandbox.pro for free access to a treasure trove of resources!</p> <hr> <h3> Part 3: Styling for Engagement </h3> <p>Great functionality deserves great styling. Let’s add CSS to enhance the user experience.</p> <h4> Styling the Overlay and Modal </h4> <pre class="brush:php;toolbar:false"><style lang="less" scoped> .content-auth-overlay { position: fixed; top: 55px; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(255, 255, 255, 10%), rgba(255, 255, 255, 100%)); z-index: 1000; pointer-events: all; opacity: 1; } .join-club { display: flex; align-items: center; margin-top: 30px; margin-bottom: 20px; width: 100%; @media @mobile { flex-flow: column; align-items: normal; gap: 15px; } } .email-input { font-size: 1.2rem; } .email-control { font-size: 1rem; white-space: nowrap; overflow: unset; padding: 11px; margin-left: 10px; } </style>
joinClub 関数は、このモーダルの中心です。ユーザーの電子メール送信を処理し、サインアップのバックエンド ロジックをトリガーします。
<script setup> const showLoginDialog = ref(true); // Controls the modal visibility const email = ref(''); // Holds the user's email input // Dynamic body class to manage overflow const body_class = computed(() => ({ overflow: showLoginDialog.value, })); // Join the club function (placeholder for now) const joinClub = async () => { console.log('User email:', email.value); }; // Placeholder function for sign-in click const onSigninClicked = (event) => { console.log('Sign-in clicked'); }; </script>
次に、join-the-club.vue コンポーネントをメイン アプリに統合します。たとえば、ユーザーの認証状態に基づいて条件付きでインポートして使用できます。
<template> <Body :class="body_class" /> <!-- Background overlay with fade effect --> <div v-if="showLoginDialog"> <ul> <li> <strong>Content Preview</strong> : The gradient overlay provides a teaser of what’s underneath, enticing the user to explore.</li> <li> <strong>PrimeVue Dialog</strong> : This non-dismissable modal focuses the user’s attention while still being friendly.</li> </ul> <hr> <p><strong>2220+ FREE</strong> <u><b><strong>RESOURCES</strong></b></u> <strong>FOR DEVELOPERS!! ❤️</strong> ?? <strong><sub><strong>(updated daily)</strong></sub></strong></p> <blockquote> <p>1400+ Free HTML Templates<br><br> 351+ Free News Articles<br><br> 67+ Free AI Prompts<br><br> 315+ Free Code Libraries<br><br> 52+ Free Code Snippets & Boilerplates for Node, Nuxt, Vue, and more!<br><br> 25+ Free Open Source Icon Libraries</p> </blockquote> <p>Visit dailysandbox.pro for free access to a treasure trove of resources!</p> <hr> <h3> Part 3: Styling for Engagement </h3> <p>Great functionality deserves great styling. Let’s add CSS to enhance the user experience.</p> <h4> Styling the Overlay and Modal </h4> <pre class="brush:php;toolbar:false"><style lang="less" scoped> .content-auth-overlay { position: fixed; top: 55px; bottom: 0; left: 0; right: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(255, 255, 255, 10%), rgba(255, 255, 255, 100%)); z-index: 1000; pointer-events: all; opacity: 1; } .join-club { display: flex; align-items: center; margin-top: 30px; margin-bottom: 20px; width: 100%; @media @mobile { flex-flow: column; align-items: normal; gap: 15px; } } .email-input { font-size: 1.2rem; } .email-control { font-size: 1rem; white-space: nowrap; overflow: unset; padding: 11px; margin-left: 10px; } </style>
このデザインは好奇心の強力な原理を活用しています。ユーザーがモーダルの下にあるコンテンツの一部を垣間見ることができるようにすることで、欠けているものを見つけたいというユーザーの欲求を引き出すことができます。このアプローチは、モーダル テキストの明確な価値提案と組み合わせることで、ユーザーの素早い意思決定を促し、コンバージョンを増加させます。
この設定では、単なる「クラブに参加」モーダル以上のものが作成されました。視覚的な魅力とユーザー心理を組み合わせてエンゲージメントを促進する、説得力のある思慮深いエクスペリエンスを作成しました。 PrimeVue ダイアログとグラデーション オーバーレイは調和して機能し、直感的で応答性の高いインターフェイスを提供しながら視聴者を魅了します。
ユーザーを喜ばせ、Web アプリケーションを向上させる魅力的な機能の構築を継続していきますので、このシリーズのさらなる内容にご期待ください!
Web 開発に関するその他のヒントについては、DailySandbox をチェックし、無料のニュースレターに登録して時代の先を行きましょう!
以上が「クラブに参加」モーダルとフェージング コンテンツを使用して登録を促す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。