Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲成a人片在线观看播放,好男人www社区资源在线观看,国产精品麻豆网站

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          自動(dòng)關(guān)閉或禁止網(wǎng)頁模態(tài)彈窗的幾種方法

          先來了解一下什么是模態(tài)彈窗?

          模態(tài)彈窗會(huì)打斷用戶的操作行為,強(qiáng)制用戶必須進(jìn)行操作,否則不可以進(jìn)行其他操作。看看模態(tài)彈窗都長啥樣吧!

          一、常見的網(wǎng)頁模態(tài)彈窗

          第1種彈窗提示信息,只有一個(gè)確認(rèn)按鈕,只有提示的作用。有返回值,但返回結(jié)果一般不太重要。

          alert的彈窗

          第2種彈窗選擇按鈕,讓用戶選擇確定或取消,然后會(huì)進(jìn)入到不同的處理步驟,需要有返回值。

          第3種彈窗輸入內(nèi)容,向用戶提問,并要求在彈窗中輸入文字,然后返回輸入的內(nèi)容。

          二、某些瀏覽器提供禁止模態(tài)彈窗功能,直接在瀏覽器設(shè)置中修改即可,甚至還可以自動(dòng)返回值,使操作不因彈窗而中斷。

          三、彈窗一般都是由javascript代碼產(chǎn)生的,在項(xiàng)目管理器中可以設(shè)置禁用javascript,這樣彈窗代碼將不會(huì)被執(zhí)行了,不彈窗也不存在返回值,會(huì)影響所有javascript腳本執(zhí)行。但它不會(huì)影響項(xiàng)目管理器中的javascript代碼執(zhí)行。

          四、自動(dòng)檢測模態(tài)彈窗,并關(guān)閉彈窗。這種方法適用于所有的第三方程序窗口,可以控制瀏覽器以外的應(yīng)用程序窗口。設(shè)定檢測頻率,按窗口標(biāo)題識(shí)別彈窗,可以強(qiáng)制關(guān)閉彈窗或向彈窗發(fā)送鍵盤事件。使用這種方法時(shí),彈窗最多存活一個(gè)檢測周期,往往一閃而過。

          五、重載彈窗函數(shù)Alert,如下圖所示,不但可以阻止彈窗,還可以獲得彈窗顯示的內(nèi)容。

          六、重載confirm函數(shù),如下圖所示,不但可以阻止彈窗,還可以直接選擇確定還是取消。

          七、重載prompt函數(shù),如下圖所示,不但可以阻止彈出輸入框,還可以把輸入的內(nèi)容直接寫在代碼中。

          Vuejs項(xiàng)目中,我們想實(shí)現(xiàn)這樣一個(gè)功能,當(dāng)有模態(tài)框處于顯示狀態(tài),按下瀏覽器的后退按鈕或者后退快捷鍵,不離開當(dāng)前頁面,而是關(guān)閉最頂層的模態(tài)框,這是增強(qiáng)用戶體驗(yàn)的一種設(shè)計(jì),那么該如何實(shí)現(xiàn)呢?

          在這里,我們以Vue3中的element-plus UI庫講解,眾所周知,常用的模態(tài)框有3種,分別是:自定義對(duì)話框,消息提示框,抽屜;我們的實(shí)現(xiàn)原理是,當(dāng)路由導(dǎo)航之前,查找頁面中的模態(tài)框DOM元素,調(diào)用關(guān)閉按鈕的單擊方法來關(guān)閉模態(tài)框;原理是不是很簡單?

          接下來,我們看代碼實(shí)現(xiàn)。首先,我們創(chuàng)建一個(gè)模塊文件modal.js,文件名大家可以隨便起。

          然后,我們定義getAllModals函數(shù),通過審查元素,我們得知對(duì)話框和抽屜的容器元素都有el-overlay類,我們就通過這個(gè)類進(jìn)行查找,刪選出可見的模態(tài)框容器元素。數(shù)組的構(gòu)造函數(shù)方法from用于將迭代器或類數(shù)組對(duì)象轉(zhuǎn)化為真正的數(shù)組。

          /** @returns {HTMLDivElement[]} 所有可見的模態(tài)框容器元素 */
          const getAllModals = () => {
            return Array.from(document.body.querySelectorAll('.el-overlay'))
              .filter(_ => window.getComputedStyle(_, null).display !== 'none')
          }

          接下來,我們定義closeModal函數(shù),用于關(guān)閉模態(tài)框,返回true,表示成功關(guān)閉了一個(gè)模態(tài)框。后面,我們會(huì)使用這個(gè)返回值來決定導(dǎo)航的邏輯。

          /** @param {HTMLDivElement} el */
          const closeModal = el => {
            if (el) {
              /** @type {HTMLButtonElement} */
              const btnClose = el.querySelector('.el-dialog__close, .el-drawer__close')
              if (btnClose) {
                btnClose.click()
                return true
              }
            }
          }

          接下來,我們定義closeTopModal函數(shù),用于關(guān)閉處于頂層的模態(tài)框,我們通過zIndex判斷模態(tài)框的層疊次序。

          export const closeTopModal = () => {
            return closeModal(
              getAllModals()
                .reduce((t, _) => t ? +t.style.zIndex > +_.style.zIndex ? t : _ : _, null)
            )
          }

          接下來,我們定義closeAllModals函數(shù),用于關(guān)閉所有模態(tài)框,用戶登錄狀態(tài)發(fā)生變化的時(shí)候會(huì)用到。

          export const closeAllModals = () => getAllModals().forEach(closeModal)

          接下來,我們定義closeMsgBox函數(shù),用于關(guān)閉消息提示框,返回true,表示成功關(guān)閉了一個(gè)消息提示框。后面,我們會(huì)使用這個(gè)返回值來決定導(dǎo)航的邏輯。

          export const closeMsgBox = () => {
            const el = document.body.querySelector('.el-overlay.is-message-box')
            if (el) {
              const visible = window.getComputedStyle(el, null).display !== 'none'
              if (visible) {
                /** @type {HTMLButtonElement} */
                const btnClose = el.querySelector('.el-message-box__headerbtn')
                if (btnClose) {
                  btnClose.click()
                  return true
                }
              }
            }
          }

          該模塊文件的最后,我們定義closeMsgBoxAndModalAll函數(shù),用于關(guān)閉所有打開的消息提示框和模態(tài)框。

          export const closeMsgBoxAndModalAll = () => {
            closeMsgBox()
            closeAllModals()
          }

          現(xiàn)在,我們可以轉(zhuǎn)向路由模塊文件了,我們對(duì)router的beforeEach導(dǎo)航守衛(wèi)進(jìn)行攔截,如果成功關(guān)閉了一個(gè)任意類型的模態(tài)框,那么阻止頁面跳轉(zhuǎn)。

          router.beforeEach((to, from, next) => {
           if (closeMsgBox() || closeTopModal()) {
              return next(false)
            }
            next()
          })

          實(shí)現(xiàn)起來就是這么簡單,不是嗎?我以后有時(shí)間會(huì)分享更多的Web開發(fā)技術(shù)內(nèi)容,歡迎大家閱讀,學(xué)習(xí)!若大家有更好的解決方案,也歡迎分享出來,共同進(jìn)步,謝謝!

          輯導(dǎo)語:Web端的設(shè)計(jì)規(guī)則有很多,設(shè)計(jì)內(nèi)容也十分豐富,本篇文章作者分享了Web端彈框設(shè)計(jì)需要掌握的要點(diǎn),從多個(gè)方面講述了有關(guān)彈框設(shè)計(jì)的內(nèi)容,一起來學(xué)習(xí)一下,希望對(duì)你有幫助。

          臺(tái)灣相較于大陸地區(qū),互聯(lián)網(wǎng)發(fā)展相對(duì)較晚,用戶使用習(xí)慣較受海外市場影響。公司后臺(tái)數(shù)據(jù)顯示PC端用戶明顯高于移動(dòng)端用戶,換句話說用戶更習(xí)慣于大屏上用到產(chǎn)品,大屏除了PC端還有iPad或其他屏幕端口。

          Web端內(nèi)容很多設(shè)計(jì)規(guī)則需要重新定義,而不是簡單從一端移到另外一端,以下關(guān)于彈框的內(nèi)容是我踩坑總結(jié),希望能給大家一點(diǎn)幫助。

          一、彈窗的定義

          定義:中斷用戶當(dāng)前操作并對(duì)其作出補(bǔ)充,或中斷用戶當(dāng)前操作并對(duì)其作出反饋。

          彈窗,是一種“展現(xiàn)于頁面之上的一種信息容器”,在x、y軸的平面空間之外擴(kuò)展了頁面的深度,它是一種比頁面更靈活的信息容器。

          常見的彈框一般包含一個(gè)蒙版,一個(gè)主體及一個(gè)關(guān)閉入口,常見于網(wǎng)頁及移動(dòng)端。其好處是讓用戶更聚焦,且不用離開當(dāng)前頁面,更快更容易完成任務(wù)。

          二、功能分類

          以彈窗功能和用途可分為:任務(wù)類(引導(dǎo)操作)、內(nèi)容反饋、信息展示三大類。模態(tài)彈窗一般是屬于任務(wù)類型的,比如賬號(hào)登錄、刪除某個(gè)信息等等

          1. 內(nèi)容反饋類型

          用戶操作用戶界面時(shí),系統(tǒng)給出相應(yīng)的內(nèi)容反饋,在設(shè)計(jì)師設(shè)計(jì)界面時(shí)常用到“通知提示”、“全局提示”、“氣泡確認(rèn)框”三種類型作為消息反饋。

          它的“非模態(tài)”在于用戶操作后不打斷用戶的情況下及時(shí)地顯示出來,明確告知用戶的一些反饋結(jié)果,幫助用戶更加有效的完成界面中的復(fù)雜任務(wù)。

          如下圖谷歌郵箱右下角的通知提示,明確告知兩個(gè)按鈕的使用含義,決定權(quán)在于用戶,同時(shí)不影響用戶其它操作

          2. 信息提示類型

          存在的意義是及時(shí)有效的幫助用戶完成任務(wù)目標(biāo),不需要用戶做特殊動(dòng)作或者轉(zhuǎn)換模式,就能看到和理解這些反饋,從而提高任務(wù)的操作效率和可理解程度。信息提示常常用到“文字提示”、“氣泡”、“警告提示”三種形式展現(xiàn)給用戶。如下圖的客服氣泡提示對(duì)應(yīng)用戶想解決問題的相關(guān)路徑:

          “非模態(tài)”彈窗中的“信息提示”類型通常都需要進(jìn)行指定動(dòng)作操作后出現(xiàn),比如編輯好內(nèi)容后點(diǎn)擊發(fā)送,通常會(huì)有發(fā)送成功的提醒。另外當(dāng)系統(tǒng)中出現(xiàn)一些成功、失敗、錯(cuò)誤、警示就需要“警告提示”告訴用戶;其中“文字提示”、“氣泡”它需要用戶懸停在某個(gè)焦點(diǎn)時(shí)出現(xiàn),移除才消失,后面我也會(huì)講解到。

          三、按體系分類

          彈窗體系分為模態(tài)彈框與非模態(tài)彈框兩種,模態(tài)彈框和非模態(tài)彈框最大的區(qū)別就是是否強(qiáng)制用戶交互。

          模態(tài)彈框會(huì)打斷用戶的當(dāng)前操作流程,如果用戶不在彈框上操作,那么其余功能都使用不了;而非模態(tài)彈框僅僅是用于提醒用戶,用戶可以忽視繼續(xù)操作。

          1. 模態(tài)彈框

          模態(tài)彈框出現(xiàn)時(shí),直到用戶明確與內(nèi)容做出回應(yīng),才能消失。常見的有對(duì)話框、抽屜等。它的視覺層級(jí)非常高,屬于不操作不消失類型。

          • 優(yōu)勢:可以很好的獲取的用戶的視覺焦點(diǎn),簡單易操作、承載的信息量有較大的彈性空間;
          • 劣勢:浮層彈窗給主操作流程造成較強(qiáng)的割裂,降低整個(gè)頁面瀏覽的流暢度。也正是這個(gè)原因很多產(chǎn)品為了減少用戶跳出率使用模態(tài)彈框非常謹(jǐn)慎;
          • 適用場景:適用于主流程步驟中需要分支任務(wù)行為的場景。

          新的花瓣web端不登錄彈框不消失,除非點(diǎn)擊右上角關(guān)閉鍵或者點(diǎn)擊后面蒙層。

          2. 非模態(tài)化的

          從出現(xiàn)到停留消失的時(shí)間大約3-5秒,用戶可以不用做出任何操作,繼續(xù)與頁面內(nèi)容進(jìn)行交互,是一種極輕量的弱彈框,不影響用戶體驗(yàn)。

          • 優(yōu)勢:同時(shí)進(jìn)行多個(gè)操作,阻斷性弱;
          • 劣勢:學(xué)習(xí)成本高,容易產(chǎn)生混亂,誤操作概率高;
          • 適用場景:適用于理解難度大、多任務(wù)處理情況有較高的要求的場景。

          上面警示提示時(shí),下面【我已閱讀并同意語雀服務(wù)協(xié)議】是可操作的。

          簡單講,模態(tài)彈窗就是當(dāng)前必須完成后,才能繼續(xù)下一步;非模態(tài)彈窗隨時(shí)可關(guān)可不關(guān),不影響當(dāng)前任務(wù)。

          3. 非模態(tài)彈框存在的意義

          “內(nèi)容反饋”及“信息提示”這兩種類型都統(tǒng)稱為“信息反饋”,因?yàn)樗鼈儍煞N類型很相似,都屬于非模態(tài)彈框。“信息反饋”存在的意義是及時(shí)有效的目的幫助用戶完成任務(wù)目標(biāo),其中“有效”包含了“提供有用的信息反饋,提高任務(wù)的操作效率和可理解程度”。

          1)有用

          有用的「信息反饋」:

          • 回應(yīng)操作結(jié)果:告訴用戶剛剛做了什么,之前的操作導(dǎo)致現(xiàn)所處的狀態(tài),讓用戶感受到一切都在掌握之中;
          • 操作路徑指導(dǎo):告訴用戶哪些過程正在進(jìn)行中,下一步需要做什么,及時(shí)告訴這一步哪些地方操作有誤。

          2)效率

          提高用戶的操作效率:

          • 操作行為反饋:在不打斷用戶行為操作的前提下提供良好的反饋機(jī)制,用戶看到反饋后可繼續(xù)操作當(dāng)前頁面;
          • 提前告知錯(cuò)誤:在用戶出現(xiàn)錯(cuò)誤之前及時(shí)制止,盡量避免出現(xiàn)錯(cuò)誤后才的告知用戶;
          • 減少系統(tǒng)報(bào)錯(cuò):減少用戶出錯(cuò)率,設(shè)計(jì)師必須清楚不出錯(cuò)不代表用戶總是正確的,而是杜絕「自以為是」地糾錯(cuò)用戶錯(cuò)誤,正確引導(dǎo)用戶形成良好的操作環(huán)境。

          四、彈框的組成元素

          彈框的組成元素主要包含以下幾類:

          • 窗體容器(必要):信息內(nèi)容的主要載體;
          • 圖標(biāo):一般跟著標(biāo)題;
          • 標(biāo)題:標(biāo)明彈框的目的/主題信息(簡單的信息確認(rèn)常常沒有標(biāo)題);
          • 提示文本(必要):可以有多種信息展示,從一行文案到各種復(fù)雜的操作集合都可容納;
          • 功能按鈕(必要):供用戶選擇,一般不超過2個(gè) (常見一個(gè)確定按鈕,一個(gè)取消按鈕);
          • 關(guān)閉按鈕:關(guān)閉彈框按鈕,并非取消鍵,關(guān)閉按鈕是最為常規(guī)的操作,主要是每一個(gè)用戶對(duì)于它都足夠的熟悉。因此建議不需要改變關(guān)閉按鈕的位置,一般會(huì)有在彈窗內(nèi)與彈窗外兩種形式可供大家進(jìn)行選擇;
          • 蒙層:提醒用戶蒙層后面內(nèi)容不可操作,聚焦當(dāng)前彈窗內(nèi)容(常見于模態(tài)彈框)。

          五、非模態(tài)彈框的樣式框架對(duì)照表

          1. 文字提示

          做為輔助類解釋說明,常用做解釋該功能特點(diǎn),常做為鼠標(biāo)的懸浮提示。

          目前有不少產(chǎn)品,在對(duì)一些普通的字段進(jìn)行解釋說明時(shí),特別喜歡使用帶遮罩的模態(tài)彈窗,需要用戶點(diǎn)擊才能關(guān)閉,嚴(yán)重阻礙用戶當(dāng)前操作,這種設(shè)計(jì)是屬于不合理的。因?yàn)檫@樣簡單的解釋說明,用非模態(tài)彈窗來展現(xiàn),用戶只需要懸停就能快速預(yù)覽相關(guān)內(nèi)容,還可以快速離開(移開觸發(fā)區(qū)的圖標(biāo),或點(diǎn)擊空白區(qū)域)。

          2. 通知提示

          常用于系統(tǒng)級(jí)通知的被動(dòng)提醒 ,通知彈窗主要是為了將一些重要信息通知給用戶

          3. 警告提示

          長文本提示建議增加標(biāo)題,表示提示的類型或主題,用戶可快速理解主要內(nèi)容,內(nèi)容建議不超過 4 行。

          Alert 默認(rèn)四種類型的提示(這里顏色是固定的,比如付款成功一般是綠色,用戶已經(jīng)產(chǎn)生這種認(rèn)知,設(shè)計(jì)時(shí)不要用新的樣式讓用戶重新學(xué)習(xí),人性是懶惰的),分別是:

          • 普通提示 info:用于展示背景條件、政策信息、規(guī)范要求、當(dāng)前狀態(tài)等客觀內(nèi)容;
          • 成功提示 success:用于展示已完成操作的成功狀態(tài);
          • 警告提示 warning:用于展示可能會(huì)導(dǎo)致某種后果的警示性文本;
          • 錯(cuò)誤提示 error:用于展示當(dāng)前操作或者整體狀態(tài)有錯(cuò)誤,提示用戶修正或展示錯(cuò)誤相關(guān)信息。

          提示框有描邊和填充這兩種變體可以使用,以便匹配不同的設(shè)計(jì)風(fēng)格。

          標(biāo)準(zhǔn)(默認(rèn))是淺色填充無邊框,填充(filled)是深色填充,描邊(outlined)只有邊框無填充。

          注意:

          1. 避免出現(xiàn) “你”,“你的”,“我”,“我的” 這類詞語,因?yàn)檫@類詞匯有時(shí)候會(huì)給人生疏和趾高?昂的感受;
          2. 不用刻意避免在警告框中使用消極負(fù)面的文案。?戶知道警告框彈出是出現(xiàn)了問題和危險(xiǎn)的情況。

          4. 全局提示

          位置一般在頁面頂端,常出現(xiàn)在用戶操作后的反饋,頁面最上層浮動(dòng)展示,暗示全局性。全局提示和警示提示狀態(tài)一樣默認(rèn)有5種狀態(tài),其中多一條loading狀態(tài) 。例如當(dāng)我在語雀上編輯好文章發(fā)布成功后,發(fā)布成功會(huì)有個(gè)全局提示的提醒,這樣做為用戶的我知道目前是處于什么狀態(tài)。

          5. 氣泡提示

          鼠標(biāo) Hover/Click 時(shí),可用于承載更多信息/輕量型的操作。

          6. 氣泡確認(rèn)框

          點(diǎn)擊元素,彈出氣泡確認(rèn)框,氣泡確認(rèn)框不對(duì)父級(jí)頁面造成影響,或者僅會(huì)父級(jí)頁面造成部分影響,摹客首次登錄進(jìn)去提示每個(gè)icon功能,但不影響后面面板的操作。

          六、模態(tài)彈框的樣式框架對(duì)照表

          1. 通知公告類彈窗

          營銷彈框、公告通知彈框、提示類消息彈框都屬于通知公告類的“模態(tài)彈窗”,特點(diǎn)就是一般不需要用戶具體操作,當(dāng)然某些場景也需要用戶簡單輸入的操作,但這些操作往往不復(fù)雜。

          如果用戶將其關(guān)閉或者點(diǎn)擊“確認(rèn)”等按鈕即代表用戶已經(jīng)接收到該消息,彈窗就完成了它的任務(wù)。

          適用通知公告類彈框的場景(通常是重要的信息,需要加強(qiáng)用戶關(guān)注度):

          • 輕量型的頁面,可以快速回到原來的界面;
          • 相對(duì)比較獨(dú)立,與原來的頁面互不干擾,完全不影響原來頁面的整體布局;
          • 比較適合簡單的一次性操作就能解決的內(nèi)容。

          1)營銷彈框

          出于公司運(yùn)營目標(biāo)為提高曝光率和營收,或便于拉新和轉(zhuǎn)化。該框會(huì)在該網(wǎng)站加載出來后第一時(shí)間就會(huì)出現(xiàn)在你面前,直到手動(dòng)關(guān)閉,不然不可操作其它。即便是他們產(chǎn)品運(yùn)營知道這種方式比較遭人煩,也不得不如此,利益大于一切價(jià)值。

          2)公告通知彈框

          主要是為了將一些重要信息通知用戶,一般在用戶登錄后第一時(shí)間談粗,避免用戶錯(cuò)過。這些信息一般來自一些被觸發(fā)的事件,或者來自應(yīng)用開發(fā)者的信息。如果這些信息比較重要,在應(yīng)用的通知中心也會(huì)保留這類重要或者高級(jí)別的通知,以便用戶查看回顧。例如摹客首次登錄有個(gè)更新提醒通知通過后版本更新內(nèi)容,方便用戶知道。

          3)提示類消息彈框(包含對(duì)話框)

          模擬系統(tǒng)的消息提示框而實(shí)現(xiàn)的一套模態(tài)對(duì)話框組件,常用與消息提示、確認(rèn)消息和提交內(nèi)容。

          確定取消語言文字描述、標(biāo)題文字描述。

          4)對(duì)話框

          對(duì)話框強(qiáng)調(diào)了用戶與計(jì)算機(jī)進(jìn)行對(duì)話的過程,是疊加在應(yīng)用主窗口上的彈出框,一般在對(duì)話中它會(huì)給出消息或要求輸入。當(dāng)對(duì)話完成后,即可關(guān)閉對(duì)話框。說人話就是,對(duì)話框一般需要用戶進(jìn)行操作,當(dāng)用戶輸入或者點(diǎn)擊“確認(rèn)”、“取消”等按鈕時(shí),計(jì)算機(jī)會(huì)根據(jù)指令進(jìn)行工作,這是一個(gè)人機(jī)“對(duì)話”的過程,因此稱之為“對(duì)話框”。

          2. 操作配置彈框

          簡單配置(表單內(nèi)容少,操作清晰)。

          “簡單”意義上的彈窗可以理解為只有平鋪的表單讓你選擇或輸入,交互清晰明了。比如創(chuàng)建項(xiàng)目、更改名稱等操作。

          3. 標(biāo)簽頁彈框

          有些應(yīng)用的功能配置中有很多復(fù)雜的屬性,操作配置的彈窗無法滿足需求,需要更精細(xì)分層歸納。它的優(yōu)點(diǎn)是合理利用了空間布局,讓信息層級(jí)更清晰易懂,使用起來更加高效。

          標(biāo)簽頁彈窗的設(shè)計(jì)需要找到信息之間的因果關(guān)系,單個(gè)彈窗中的標(biāo)簽頁不宜過多,一般不超過五個(gè),如果多余5個(gè)標(biāo)簽,建議將其改為豎向顯示。

          4. 分步彈框

          分布彈框是分布表單的衍生品,與標(biāo)簽頁彈框接近,區(qū)別是分步彈框需要上一步完成才能進(jìn)行下一步,主要特點(diǎn)頭部會(huì)有進(jìn)度條告知當(dāng)前進(jìn)度和后續(xù)還有需要幾個(gè)步驟完成操作,另外一點(diǎn)是頁腳上常常會(huì)有下一步、上一步兩個(gè)選項(xiàng)供用戶進(jìn)行選擇。

          5. 抽屜

          抽屜指的是從當(dāng)前界面的“上下左右”側(cè)邊滑出相應(yīng)的表單內(nèi)容完成相應(yīng)操作,之前的內(nèi)容不丟失。

          • 優(yōu)勢:承載的信息量有較大的彈性空間。
          • 劣勢:由于信息集中在一側(cè),導(dǎo)致視覺焦點(diǎn)不穩(wěn)定,如果長時(shí)間工作,會(huì)產(chǎn)生不平衡的感覺。
          • 適用場景:適用于當(dāng)前任務(wù)流中插入臨時(shí)任務(wù)的場景。

          抽屜式彈框常見4種樣式,表格中出現(xiàn)較多,通常會(huì)以側(cè)滑的形式出現(xiàn),有加遮罩層的,也有不加遮罩層的模態(tài)彈窗(不加遮罩層方便方便用戶進(jìn)行對(duì)比、參照和檢閱相關(guān)內(nèi)容,同時(shí)并不會(huì)影響用戶對(duì)界面其他區(qū)域的操作)。

          6. 頁面跳轉(zhuǎn)

          頁面跳轉(zhuǎn)后的新開頁面是當(dāng)前頁面保留,新的內(nèi)容在新頁面中呈現(xiàn)。常見的頁面跳轉(zhuǎn)方式有直接跳轉(zhuǎn)、左右跳轉(zhuǎn)、上下跳轉(zhuǎn)、翻轉(zhuǎn)跳轉(zhuǎn)、聯(lián)動(dòng)性跳轉(zhuǎn)、放大縮小跳轉(zhuǎn)(iOS微信公眾號(hào)浮窗)、搜索框跳轉(zhuǎn)。

          其中直接跳轉(zhuǎn)是最原始最直接的跳轉(zhuǎn)方式,在web端很常見,實(shí)現(xiàn)難度和維護(hù)成本都很低。在設(shè)計(jì)時(shí)需要考慮好其中的關(guān)聯(lián)性,從而做出最合適的設(shè)計(jì)。

          從頁面承載的內(nèi)容看,新建頁面>抽屜式彈框>對(duì)話框。

          • 優(yōu)勢:信息承載能力強(qiáng);有利于用戶對(duì)業(yè)務(wù)流程有更清晰的認(rèn)識(shí),從而使得主流程的操作流暢度高。
          • 劣勢:及時(shí)性反饋較低,頁面連貫性明顯小于對(duì)話框和抽屜式
          • 適用場景:適用于特別重要的功能表單的填寫場景。

          但是我們不能單一從頁面內(nèi)容量的多少來確定使用哪種形式。通常內(nèi)容的深度較深最好采用抽屜式,內(nèi)容寬度較寬則彈框形式更為合理,新建頁面適合寬度與深度同時(shí)較大的產(chǎn)品中

          本著孜孜不倦的學(xué)習(xí)心態(tài),這次梳理也是因?yàn)樵诠ぷ髦杏龅?個(gè)小問題。

          1)模態(tài)彈框是不是一定有黑色透明蒙層,沒有蒙層時(shí)屬于什么性質(zhì)彈框?

          這時(shí)候我各種渠道搜索之后發(fā)現(xiàn)有些大佬說蒙層是模態(tài)彈框的標(biāo)志,并沒講原因,這種說法完全不能接受。我在使用過程中碰到過沒有蒙層的彈框,存在即合理好奇心驅(qū)使我去問了研發(fā)和產(chǎn)品同學(xué),最后得出結(jié)論根據(jù)用戶使用場景不同,對(duì)蒙層的設(shè)計(jì)也不同。

          原來是隨著產(chǎn)品對(duì)彈窗的使用,也會(huì)有需求采用不透明度為0的蒙層,最小化打斷用戶的操作的不良體驗(yàn);但是要注意在一個(gè)產(chǎn)品系統(tǒng)中蒙層不透明度的使用應(yīng)該統(tǒng)一,這個(gè)需要規(guī)范定統(tǒng)一的不透明度避免產(chǎn)品各個(gè)地方不統(tǒng)一的情況。

          谷歌郵件非常典型案例,當(dāng)窗口最大化時(shí),產(chǎn)品認(rèn)定為用戶專注寫郵件不想被打擾場景,所以父級(jí)頁面加上蒙層不可操作,視覺聚焦當(dāng)前彈框操作窗口;當(dāng)新郵件窗口默認(rèn)模式時(shí),產(chǎn)品判斷用戶可能是寫郵件場景,同時(shí)可能需要翻閱或查找以往郵件,這時(shí)候父級(jí)頁面操作完全不受影響。

          可以說明蒙層取決于當(dāng)前操作是否需要參照父級(jí)頁面,如果填表需要參考父級(jí)頁面可以不需要蒙層,反之相反。

          我寫日?qǐng)?bào)時(shí)候覺得非常便利,有時(shí)候需要查看昨天日?qǐng)?bào),看看計(jì)劃今日是否完成,以便提交今天日?qǐng)?bào)。如果這時(shí)候父級(jí)頁面不可操作,我需要多4-5步把昨天內(nèi)容復(fù)制過來,這無疑是非常累贅的操作。

          2)為什么有的模態(tài)彈框右上角沒有關(guān)閉鍵?當(dāng)彈框下面有確認(rèn)和取消鍵可關(guān)閉彈框時(shí),右上角關(guān)閉鍵多余能否去掉?

          關(guān)于這個(gè)問題不知道大家伙有沒有觀察到,早期win電腦的彈框右上角都有固定位置的關(guān)閉按鈕,發(fā)展到目前有些產(chǎn)品設(shè)計(jì)右上角保留關(guān)閉鍵,有些產(chǎn)品設(shè)計(jì)省去關(guān)閉鍵了,那么它們存在或消失的邏輯是什么呢?

          上圖花瓣和Pinterest的彈框中,點(diǎn)擊蒙層都可關(guān)閉,同時(shí)花瓣右上角有關(guān)閉按鈕,這樣看來關(guān)閉按鈕似乎多余了。

          我們?cè)倏瓷蠄D中的案例,對(duì)于這種表單頁,右下角取消鍵以及右上角的關(guān)閉都可以關(guān)閉彈框,導(dǎo)致存在兩個(gè)關(guān)閉鍵我認(rèn)為有以下幾點(diǎn):

          1. 視覺平衡(只針對(duì)彈框,這個(gè)原因占比很小);
          2. 符合用戶習(xí)慣(由傳統(tǒng)win操作轉(zhuǎn)移,對(duì)于不需要的操作習(xí)慣性關(guān)閉,而不是取消);
          3. 交互一致性:出于一致性原則,整個(gè)產(chǎn)品彈框右上角都有關(guān)閉按鈕;
          4. 提高無障礙訪問:這個(gè)理解有點(diǎn)類似鍵盤上esc鍵,退出當(dāng)前操作,在沒有確認(rèn)和取消按鈕時(shí),這個(gè)關(guān)閉鍵就至關(guān)重要。

          不同場景的理解:

          對(duì)話框的「關(guān)閉」是對(duì)于彈窗頁面的一種反饋,它的含義是「關(guān)閉當(dāng)前彈窗,暫對(duì)彈窗內(nèi)容暫時(shí)不做處理」;而彈框里面「取消」是對(duì)彈框內(nèi)容的反饋

          比如對(duì)話框給用戶,問是否要加入活動(dòng)?如果用戶還沒想清楚,不想現(xiàn)在決定,點(diǎn)否表示拒絕不合適的,關(guān)閉彈窗就表示我現(xiàn)在不做決定。從操作上關(guān)閉和取消鍵判斷是一致的,用戶沒有激活活動(dòng)。

          七、交互細(xì)節(jié)思考

          1. 選擇:用對(duì)話框還是抽屜

          與“對(duì)話框”對(duì)比,“抽屜”在使用場景也有它的優(yōu)劣勢。

          • 優(yōu)勢:“抽屜”的頁面空間更大,它能夠承載更多的內(nèi)容、信息,它與主頁面親密度更高;
          • 劣勢:“抽屜”的靈活度比較低,比如“對(duì)話框”可以根據(jù)業(yè)務(wù)的內(nèi)容多少去變化它的寬度與高度,而抽屜只能橫向/縱向降低尺寸。
          • 一致性:例如某產(chǎn)品彈出的表單大多較長,采用抽屜組件,為了保持體驗(yàn)的一致性,個(gè)別短表單也可以同樣采用抽屜。

          “抽屜”適用范圍更小,大部分場景下都用在較復(fù)雜的表單及字段較多詳情頁。

          “抽屜”在Web端的應(yīng)用中可分為:a. 內(nèi)容展示、b. 表單編輯這兩大類型。

          注釋:

          操作確認(rèn)、信息提示、操作反饋場景:在需要用戶暫停當(dāng)前操作、即刻處理時(shí),使用模態(tài)彈框。

          需要和父級(jí)頁面內(nèi)容相互參照:使用無遮罩的非模態(tài)抽屜,便于查看和操作。

          需要在父級(jí)頁面中快速選擇切換:使用無遮罩的非模態(tài)抽屜。在下面父頁面露出的部分上進(jìn)行與抽屜內(nèi)容和位置都無關(guān)的操作,且不是點(diǎn)擊空白區(qū)域時(shí),抽屜不用自動(dòng)消失。

          疊放:是指在一個(gè)對(duì)話框/抽屜上面疊加放置更多對(duì)話框/抽屜。不建議對(duì)話框上疊放對(duì)話框,但抽屜組件支持多層抽屜,即在抽屜內(nèi)打開新的抽屜,用以解決多分支任務(wù)的復(fù)雜狀況。

          八、如何設(shè)計(jì)出合理的彈框

          1. 前提條件

          優(yōu)秀彈窗不管從視覺設(shè)計(jì)層面還是從文案邏輯層面都需要清晰簡潔易懂,在彈出時(shí)需要考慮目標(biāo)用戶是否理解,以及盡量降低用戶的其它操作。

          假想我正在玩游戲或看直播、突然來了個(gè)騷擾電話全屏幕覆蓋(傳統(tǒng)來電),我會(huì)以最快的速度掛掉電話,回到游戲中發(fā)現(xiàn)已領(lǐng)盒飯,這個(gè)就相當(dāng)尷尬了。

          即便來電是多么的理所當(dāng)然,但心里必定是非常不痛快的。如果來電以彈窗的形式占據(jù)屏幕很小區(qū)域是不是就給了用戶足夠反應(yīng)時(shí)間及緩沖時(shí)間呢?

          2. 設(shè)計(jì)目的

          理解彈框設(shè)計(jì)前提后,下一步需要明確設(shè)計(jì)目標(biāo)。

          設(shè)計(jì)師應(yīng)該理解產(chǎn)品需求,分別產(chǎn)品側(cè)(能給產(chǎn)品帶來什么?產(chǎn)品如何期望?是否合理?能得到什么樣的結(jié)果)?

          從用戶側(cè)(能給用戶帶來什么?滿足什么樣的需求?避免什么損失)?

          分析為什么要加彈窗,然后將分析的結(jié)果轉(zhuǎn)化為設(shè)計(jì)目標(biāo),以確保彈窗根據(jù)不同的需求,以適合的樣式呈現(xiàn)給用戶。

          其次,在得到設(shè)計(jì)目標(biāo)后,同樣需要從設(shè)計(jì)側(cè)、技術(shù)側(cè)思考彈窗組件的一致性。

          從設(shè)計(jì)角度,團(tuán)隊(duì)所有成員需要對(duì)該組件有清晰且統(tǒng)一的認(rèn)知,了解組件的使用場景,以確保不會(huì)錯(cuò)用、濫用,提升效率。

          站在技術(shù)角度,一致性的常用彈窗組件,便于開發(fā)做組件封裝后續(xù)復(fù)用,大大提高開發(fā)效率。

          這里我強(qiáng)調(diào)下我們接到業(yè)務(wù)訴求明確到控件時(shí),作為設(shè)計(jì)師該如何判斷和溝通訴求的合理性:

          首先接到需求后,執(zhí)行不是第一步,我們首先需要判斷業(yè)務(wù)的首要目標(biāo)和具體訴求是否統(tǒng)一,具體訴求是否是完成目標(biāo)的最佳解決方案?

          例如舉例的業(yè)務(wù)目標(biāo):“減少用戶跳出帶來的流失”——先確定流失的的根本原因是否由跳出導(dǎo)致,原有流程中跳出的目的是什么,改變承載介質(zhì)是否能達(dá)成原有目的?確定以上信息便于我們同步業(yè)務(wù)根本需求,從而判斷訴求的合理性,同時(shí)明確設(shè)計(jì)側(cè)可發(fā)力點(diǎn)。然后才是如何輸出平衡業(yè)務(wù)目標(biāo)與用戶體驗(yàn)的有效方案。

          3. 需要注意的點(diǎn)

          1)文案表述

          因彈窗本身承載內(nèi)容有一定的局限性,固文案一定要簡潔且精確,能用一句話說清楚的就不要過于啰嗦,容器的空間有限且用戶的耐性也有限。

          2)標(biāo)題字體

          另外文案的標(biāo)題往往比正文大2px或4px,具體看自己公司字體規(guī)范,比如新建表單、刪除信息、修改內(nèi)容等,前面不同標(biāo)題對(duì)應(yīng)不同的功能場景,都是為了用戶方便理解。

          3)確定與確認(rèn)

          我們先講講彈窗中常常容易被忽視也容易搞混淆的「確認(rèn)」和「確定」,它們常常與「取消」按鈕搭配使用,從表面的中文上看他們很接近,所以造成很多設(shè)計(jì)師把二者混合著用。

          4)彈出的時(shí)機(jī)及頻率

          針對(duì)運(yùn)營彈窗,如果彈出的時(shí)間不對(duì)或過于頻繁,可能會(huì)造成用戶反感,所以需要把握好彈出時(shí)機(jī)及頻率。

          例如包圖網(wǎng)VIP,如果用戶每次進(jìn)入應(yīng)用都看到彈出提醒,確實(shí)又沒有購買商品的意愿,總是被彈窗打斷真的就很煩,并且彈框后也套著彈框。若我需要下載素材需要關(guān)閉2次才能找素材,相信你進(jìn)入該網(wǎng)站也會(huì)反感。

          那么可以適當(dāng)將提醒彈窗設(shè)置為每日首次進(jìn)入應(yīng)用時(shí)提示、每累計(jì)進(jìn)入應(yīng)用5次后提示或者即將到期提示等,總之,需要控制在大部分用戶的可接受范圍內(nèi)。

          5)盡量避免彈框上再加彈框

          要盡量避免在彈框上再彈一層彈框,多層層蒙版會(huì)讓用戶覺得負(fù)擔(dān)很重,當(dāng)然早期win多模態(tài)彈框采用位置錯(cuò)誤,在產(chǎn)品中盡量避免使用。

          如果有多個(gè)彈框一同出現(xiàn)該怎么辦呢?

          一是要做好多種內(nèi)容層級(jí)的排序,二是不同類的內(nèi)容盡量區(qū)分場景改用輕量彈框或者交互重新梳理,還有多個(gè)彈窗同時(shí)出現(xiàn)的時(shí)候,頁面的彈窗疊加在一起,無論是視覺還是感受都會(huì)非常差,建議慎重使用。

          6)抽屜頁面上可以更深一步操作彈出彈框或再疊加一個(gè)抽屜

          九、如何優(yōu)化彈框用戶體驗(yàn)

          1.彈框尺寸如何定

          我們開始設(shè)計(jì)一個(gè)彈框時(shí),首先解決的問題是確定彈框尺寸。

          上圖可看出市場市面上最小的屏幕是1024×768,那是不是只要在最小分辨率下不錯(cuò)位不跑偏,在其他分辨率就能安分守己呢?

          2. 彈框高度和寬度

          那下面我們就以最小分辨率1024×768為基礎(chǔ)開始今天的論證。

          • 高度:768-60(或100瀏覽器高度)-40(底部狀態(tài)欄)=628~668 px;
          • 寬度:1024px – 約20px(滾動(dòng)條寬度度) ≈1000px。

          由此可以得出彈窗尺寸的界限值:彈窗高度≤620px,寬度≤1000px。

          1)彈窗高度不高于瀏覽器內(nèi)容展示

          彈框高度過高,彈框顯示不全,就算滾動(dòng)條固定到底部也有一部分顯示不出來,影響操作。對(duì)話框的大小主要根據(jù)內(nèi)容而定,Web端應(yīng)用中,一個(gè)尺寸無法滿足所有類型的彈窗需求。

          抽屜提供穩(wěn)定的尺寸。提供 S (w=378px) 和 M (w=736px)基礎(chǔ)寬度選項(xiàng)。這兩個(gè)尺寸是根據(jù) antd 表單尺寸規(guī)范,分別可容納單列和雙列表單,而且保持了使用抽屜時(shí)父級(jí)頁內(nèi)容可見的優(yōu)勢。

          2)內(nèi)容滾動(dòng)

          坑我已經(jīng)幫大家踩完了,大家在設(shè)計(jì)抽屜式彈框和父級(jí)頁面都是長頁面時(shí),一定要將背景滾動(dòng)條進(jìn)行鎖定,不然兩個(gè)滾動(dòng)條的出現(xiàn),會(huì)導(dǎo)致十分混亂。

          3. 關(guān)閉方式優(yōu)化

          彈窗應(yīng)至少包含一個(gè)以上的關(guān)閉方式,常見的彈窗關(guān)閉方式有 4 種:

          1. 右上角的關(guān)閉按鈕;
          2. 彈窗底部的“取消”按鈕;
          3. 彈窗外的任意區(qū)域;
          4. 一段時(shí)間后自動(dòng)消失。

          彈窗外的任意區(qū)域,這種方式一般用于模態(tài)彈窗,除了彈窗中的關(guān)閉按鈕外,點(diǎn)擊彈窗外的任意區(qū)域關(guān)閉,這種交互方式上文內(nèi)容有提到討論過,這里不再贅述。

          值得注意的是操作配置類彈窗不建議采用點(diǎn)擊蒙層關(guān)閉彈框,極易誤操作導(dǎo)致正在配置中的彈窗被關(guān)閉。

          4. 模態(tài)層優(yōu)化

          方式一:模態(tài)層顏色根據(jù)產(chǎn)品品牌色定

          蒙層顏色可以用色彩傾向偏向品牌的蒙層,這樣整體品牌感知會(huì)加強(qiáng),如上圖蒙層加入了品牌色的色彩傾向,整體品牌感知更強(qiáng)。

          方式二:有模態(tài)層但不顯示

          模態(tài)抽屜的遮罩背景層可以降低透明度,也可以是全透明不顯示的,可以更好的展示關(guān)聯(lián)的信息,點(diǎn)擊抽屜其他處可關(guān)閉抽屜,下圖中的模態(tài)抽屜就是這樣設(shè)計(jì)的。點(diǎn)擊右側(cè)父級(jí)頁面可關(guān)閉抽屜。

          方式三:去掉模態(tài)層

          下圖中的抽屜為非模態(tài)抽屜,可以根據(jù)左側(cè)列的切換快速查看右側(cè)抽屜內(nèi)容。

          是否去掉模態(tài)層根據(jù)場景而定,如果抽屜內(nèi)容與父級(jí)頁面關(guān)聯(lián),建議去掉模態(tài)層,目標(biāo)是方便用戶操作。如果抽屜內(nèi)容與父級(jí)頁面無關(guān)聯(lián),加上蒙層,避免父級(jí)內(nèi)容的干擾,讓用戶視覺更聚焦抽屜內(nèi)容。

          十、內(nèi)容小結(jié)

          1. 知己知彼

          • 己:我們需要對(duì)每種樣式使用方式與注意事項(xiàng)了然于心,這樣在我們?cè)O(shè)計(jì)的時(shí)候才能得心用手;
          • 彼:對(duì)產(chǎn)品的業(yè)務(wù)需求有所認(rèn)知,對(duì)研發(fā)實(shí)現(xiàn)方式有一定了解,這時(shí)候我們的觀點(diǎn)才會(huì)專業(yè),才能有理由說服其它人,從而設(shè)計(jì)出好用又統(tǒng)一的頁面,實(shí)現(xiàn)我們的設(shè)計(jì)價(jià)值。

          2. 體驗(yàn)統(tǒng)一

          對(duì)于頁面的展示采取哪種樣式有科學(xué)說服性解釋,注意交互體驗(yàn)的一致性,也注意不要為了一致而一致,效率至上,滿足業(yè)務(wù)需求為第一位。考慮好之間的關(guān)聯(lián)性,給出最符合用戶心理預(yù)期的過渡方式,就可以幫助我們找到最合適的設(shè)計(jì)。

          3. 未來趨勢

          互聯(lián)網(wǎng)不斷影響著我們的生活,移動(dòng)端也在引領(lǐng)著設(shè)計(jì)趨勢,多端體驗(yàn)的一致性,可以想像將會(huì)有一大波移動(dòng)上的體驗(yàn)遷徙網(wǎng)頁設(shè)計(jì)上,未來還會(huì)出現(xiàn)更好用且易維護(hù)的展現(xiàn)方式。

          文章引用:

          • PC端彈窗設(shè)計(jì)十全大補(bǔ);
          • 大廠高手出品!深入了解B端的彈窗設(shè)計(jì)應(yīng)用;
          • B端彈窗設(shè)計(jì)指南,超詳細(xì);
          • B端內(nèi)網(wǎng)的彈窗規(guī)范——看這篇就夠了。

          本文由 @見賢設(shè)計(jì)筆記 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

          題圖來自 Unsplash,基于CC0協(xié)議。


          主站蜘蛛池模板: 国产萌白酱在线一区二区| 国产综合视频在线观看一区| 蜜臀Av午夜一区二区三区| 亚洲日本精品一区二区| 亚洲AV无码一区二区三区人| 无码丰满熟妇浪潮一区二区AV| 黄桃AV无码免费一区二区三区| 伊人久久精品一区二区三区 | 精品一区二区三区高清免费观看 | 国产美女av在线一区| 一区二区三区人妻无码 | 少妇人妻精品一区二区三区| 久久久久久人妻一区二区三区| 中文字幕精品亚洲无线码一区| 亚洲愉拍一区二区三区| 国产综合无码一区二区三区| 国产小仙女视频一区二区三区 | 亚洲日韩AV一区二区三区中文| 成人在线观看一区| 日韩一区二区在线观看视频| 国产福利电影一区二区三区久久久久成人精品综合 | 色狠狠一区二区三区香蕉| 一区二区高清视频在线观看| 久久精品一区二区三区AV| 91video国产一区| 国产精品视频分类一区| 久久精品午夜一区二区福利| 久久er99热精品一区二区| 亚洲av无码一区二区三区不卡| 制服丝袜一区二区三区| 亚洲国产成人一区二区三区| 精品久久一区二区三区| 日韩精品无码一区二区三区免费 | 精品无码成人片一区二区| 国产主播一区二区三区在线观看| 国产一区二区三区精品久久呦| 波多野结衣电影区一区二区三区 | 天堂Aⅴ无码一区二区三区| 亚洲永久无码3D动漫一区| 色噜噜狠狠一区二区三区果冻 | 国产免费一区二区视频|