有時,微妙的設計元素可以對使用者體驗產生巨大的影響。登入彈出視窗上的「搖晃」效果不是顯示傳統的錯誤訊息,而是提供了明確且立即的指示,表明出現了問題。本教學將指導您使用 vanilla JavaScript 、 CSS 動畫 和開源程式庫 Tippy.js.
來實現此功能。我們的目標是:
- 使用 Tippy.js 建立登入彈出視窗。
- 加入錯誤發生時的「搖晃」效果。
- 搖晃結束後自動重置動畫。
讓我們開始吧!
第 1 部分:使用 CSS 設定搖動動畫
我們先為搖動效果定義一個可重複使用的 CSS 動畫。下面的 @keyframes 規則模仿左右搖晃:
@keyframes shaking { 10%, 90% { transform: translate3d(-1px, 0, 0); } 20%, 80% { transform: translate3d(2px, 0, 0); } 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } 40%, 60% { transform: translate3d(4px, 0, 0); } } .shake { animation: shaking 0.82s cubic-bezier(.36,.07,.19,.97) both; }
- 關鍵影格詳細資料 :translate3d 屬性將彈出框稍微向左和向右移動以創造晃動效果。
- 可重複使用類別:將 shake 類別套用至任何元素都會觸發動畫。
第 2 部分:使用 Tippy.js 建立登入彈出窗口
我們將使用 Tippy.js 建立一個可點擊的登入彈出視窗。彈出視窗將包括:
- 電子郵件輸入欄位。
- 「登入」按鈕。
- 用於處理登入邏輯和搖晃效果的事件偵聽器。
這是設定彈出視窗的核心 JavaScript:
第 1 步:登入類
APP.Signin = class { constructor($target) { this.values = {}; // Store any required state if ($target) this.$target = $target; // The DOM element triggering the popover this.init(); // Initialize the popover return this; } // Trigger the shake animation shake() { this.$tippy.classList.add('shake'); return this; } // Handle Sign-In button clicks onSigninClicked(event) { event.preventDefault(); // Retrieve the entered email let email = document.querySelector('.app-signin-email').value; // Error and success handlers let _onError = () => this.shake(); let _onSuccess = (response) => { if (response.errors.length) { this.shake(); // Shake on error } else { // Handle successful login console.log('Login successful!'); } }; // Simulate a backend login request let form_data = new FormData(); form_data.append('method', 'quickSignIn'); form_data.append('email', email); axios({ method: 'POST', url: 'path/to/server', data: form_data, headers: { 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8' }, }) .then((response) => (typeof response.data === 'string' ? JSON.parse(response.data) : response.data)) .then(_onSuccess) .catch(_onError); } // Define the HTML content of the popover getContent() { return ` <div> <hr> <p><strong>2228+ 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> 359+ Free News Articles<br><br> 69+ Free AI Prompts<br><br> 323+ 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: Wiring It All Together </h3> <p><strong>Simulated Backend</strong> : If you don’t have a real server, mock responses with a promise:<br> </p> <pre class="brush:php;toolbar:false">const mockServer = (email) => new Promise((resolve, reject) => { setTimeout(() => { if (email === 'test@email.com') resolve({ errors: [] }); else reject({ errors: ['Invalid email'] }); }, 500); });
彈出框的 CSS :確保彈出框符合您的設計。這是一個簡單的設定:
.app-signin { display: flex; flex-direction: column; gap: 10px; } .app-signin-email { width: 100%; padding: 10px; font-size: 1rem; border: 1px solid #ccc; border-radius: 4px; } .app-signin-btn { background-color: #007bff; color: white; text-align: center; padding: 10px; border-radius: 4px; cursor: pointer; } .app-signin-btn:hover { background-color: #0056b3; }
HTML 觸發器元素 :在 HTML 中加入觸發器元素:
<hr> <h3> 第四部分:測試震動效果 </h3> <ol> <li>點選<strong>登入</strong>按鈕開啟彈出視窗。 </li> <li>輸入無效的電子郵件並提交。觀察彈出框晃動,表示有錯誤。 </li> <li>輸入有效的電子郵件,看不到晃動-成功! </li> </ol> <hr> <h3> 結論:使用者友善的錯誤提示 </h3> <p>搖動效果透過提供清晰、直覺的錯誤指示器來增強使用者體驗,而不會因為額外的訊息而使 UI 變得混亂。與用於時尚彈出視窗的 Tippy.js 和用於互動性的 vanilla JS 相結合,此設定乾淨、實用且具有視覺吸引力。 </p> <p>不斷嘗試和調整-因為出色的使用者體驗取決於細節! </p> <p>有關 Web 開發的更多技巧,請查看 <strong>DailySandbox</strong> 並註冊我們的<strong>免費時事通訊</strong>以保持領先地位! </p>
以上是在登入彈出視窗中新增「搖晃」效果以提供視覺錯誤提示的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

當他們在2013年去Chrome時,我們失去了歌劇。與Edge今年早些時候也進行了同樣的交易。邁克·泰勒(Mike Taylor)稱這些變化為“減少

在本週的綜述中,Apple進入Web組件,Instagram如何插入腳本以及一些思考的食物,以進行自託管關鍵資源。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版
好用的JavaScript開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。