整合營銷服務(wù)商

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

          免費咨詢熱線:

          前端如何提高用戶體驗:增強可點擊區(qū)域的大小

          前端如何提高用戶體驗:增強可點擊區(qū)域的大小

          是否曾經(jīng)試著點擊或點擊一個元素(例如:按鈕、鏈接),并且注意到只有單擊該元素的特定區(qū)域,它才會響應(yīng)?

          必生這種情況是因為可點擊區(qū)域未應(yīng)用于整個元素。為了更加清楚,請參見下圖,左圖可點擊區(qū)別(圈紅部分)明顯比右圖的小很多,所以右圖的實現(xiàn)用戶體驗會更好。

          對于本文,會介紹一些事例,并通過事例演示如何增加可點擊區(qū)別,提高用戶體驗。

          WCAG準則

          WCAG全稱Web Content Accessibility Guidelines 網(wǎng)頁內(nèi)容無障礙瀏覽準則,簡單的說就是為了方便殘障人士(包括低視患者,盲人,聾人,學習障礙,行動不便,認知障礙....)訪問Web內(nèi)容而制定的相關(guān)標準,可以使網(wǎng)站更加人性化。

          舉個例子,在WCAG準則2.3.2中規(guī)定:網(wǎng)頁不包含任何閃光超過3次/秒的內(nèi)容。

          用戶應(yīng)該能夠使用臺式機/筆記本電腦上的鍵盤以及移動設(shè)備或平板電腦上的觸摸屏來操作輸入。不要在移動設(shè)備屏幕上將按鈕設(shè)置得太小,以免按下正確的按鈕。觸摸目標的最小尺寸最好至少為44 x 44像素。

          費茲法則

          **費茲法則(Fitts law)**是一個人機互動以及人體工程學中人類活動的模型;它預測了快速移動到目標區(qū)域所需的時間是目標區(qū)域的距離和目標區(qū)域大小的函數(shù)。

          在下面的圖中,我模擬了兩個按鈕的不同情況。在左側(cè),按鈕更小,更遠,用戶需要更多的時間與它互動。在右側(cè),按鈕大小更大,更接近于它的同級輸入元素,這將使交互更容易、更快。

          接著,我們再來看看一些更加真實例子。注意:記住WCAG準則費茲法則 的概念。

          按鈕

          在需要時使用實際真實<button>(包含可點擊區(qū)域)非常重要。下面的示例來自我使用的在線銀行系統(tǒng):

          <div class="navig next" onclick="validateLogin()">Next</div>

          這是上面按鈕的HTML的GIF圖像。我把鼠標懸停在按鈕上,光標仍然是一個指針,這很好。不過,我也可以選擇文本和懸停時,有一個文本光標!如果使用了正確的元素,就不會發(fā)生這種情況。

          當使用HTML<button>元素時,會獲得下面效果:

          • 可通過鼠標,鍵盤或觸摸訪問
          • 可以通過鍵盤選中
          • 有對應(yīng)的 JavaScript 方法

          有些元素,我們需要添加 padding,原因有二:

          • 讓它更美觀
          • 讓它變大,這樣更容易被注意到

          鏈接

          之前在做導航的時候,犯了一個錯誤,應(yīng)該是給 a 標簽添加 padding 而不是 li:

          <nav>
            <ul>
              <li class="nav-item"><a href="#">Home</a></li>
              <li class="nav-item"><nav href="#">Products</nav></li>
              <li class="nav-item"><a href="#">Store</a></li>
              <li class="nav-item"><a href="#">Team</a></li>
            </ul>
          </nav>
          
          // css
          
          .nav-item {
            padding: 12px 16px;
          }

          基于上面的HTML和CSS,可點擊的區(qū)域?qū)⒅皇俏谋?,如下圖所示:

          正確的方法是在a 標簽本身上添加padding。請注意,默認情況下,padding 需要塊元素才有效,而 a 標簽是行內(nèi)元素,所以可以給 a 標簽設(shè)置block,inline-element或 flex。

          .nav-item a {
            display: block;
            padding: 12px 16px;
          }

          添加了上面的樣式后,可點擊的效果如下:

          面包屑導航

          假設(shè)可點擊區(qū)域如下所示:

          這種體驗不是很好,鼠標或手指指向屏幕上如此小的目標會比較難。在下圖中,它的可點擊區(qū)域更大并且更易于交互。

          事例源碼:https://codepen.io/shadeed/pen/PMygee

          復選框和單選按鈕

          當存在復選框或單選按鈕元素時,我希望可以單擊它或關(guān)聯(lián)的標簽來激活/禁用它。

          從用戶體驗的角度來看,這是難以訪問和糟糕的。在 HTML 中,可以使用for屬性將標簽與輸入框綁定在一起。

          <input type="checkbox" id="option1">
          <label for="option1">Option 1</label>

          或者可以將輸入框放置在標簽內(nèi):

          <label for="option1">
              Option 1
              <input type="checkbox" id="option1">
          </label>

          然后,在<label>元素上添加padding,以使可點擊區(qū)域變大。這樣,問題得以解決,整個復選框或單選按鈕都是可單擊的,如下圖所

          側(cè)邊欄

          對于帶有類別的頁面,有時我會注意到列表鏈接沒有擴展到其父頁面的整個寬度。也就是說,可點擊區(qū)域僅在文本上,如下圖所示:

          解決方法:

          • 刪除<li>元素的 padding,并將其移動到<a>元素
          • 通過添加display: block使a標簽的寬度等于其父鏈接的寬度。
          .nav-item a {
              /*Other styles*/
              padding: 12px 16px;
              display: block;
          }

          添加后,如下所示:

          真實案例

          在最近的Twitter更新中,導航設(shè)計在可點擊區(qū)域大小方面存在問題。最初,它僅與文本相關(guān),如下面的屏幕截圖所示,但他們在收到反饋后將其修復。

          章節(jié)標題

          在某些情況下,需要在章節(jié)標題的遠端添加“查看更多”按鈕或箭頭。在下面的示例中,我將箭頭放置在假圓中,以便可以正確地使箭頭居中。

          通常情況下,箭頭周圍的間距可以使用padding或width和height。

          使用偽元素來增加可點擊區(qū)域

          僅通過改變元素的寬度和高度或使用padding,并不總是能夠使可點擊區(qū)域變大,這時候就需要偽元素救場了。

          這個想法是,偽元素屬于其父元素,因此當我們創(chuàng)建具有特定寬度和高度的偽元素時,它將充當其父元素的單擊/觸摸/懸停區(qū)域。

          在下圖中,我在菜單按鈕中添加了:after偽元素:

          .menu-2:after {
            content: "";
            position: absolute;
            left: 55px;
            top: 0;
            width: 50px;
            height: 50px;
            background: #e83474;
            /*Other styles*/
          }

          事例源碼:https://codepen.io/shadeed/pen/BXXjEg?editors=0100


          作者:Ahmad Shadded 譯者:前端小智 來源:css-tricks

          原文:https://css-tricks.com/enhancing-the-clickable-area-size/

          SS偽元素主要是指HTML中沒有定義、存在的元素,偽元素本身不是真正的頁面元素,但是偽元素在使用過程中,其用法與效果與其他真正頁面元素是一樣的。偽元素只能在定義基礎(chǔ)上動態(tài)顯示其運行效果,在HTML源文件中并沒有該元素的真正代碼。CSS3中所定義的所有偽元素與偽類描述如下圖所示:

          CSS偽元素與偽類


          按鈕波紋ripple效果展示

          ripple波紋

          按鈕的波紋效果主要是指按鈕在點擊時展示出的動態(tài)效果。在實現(xiàn)效果過程中可行的方法方式較多,例如可以使用JavaScript、CSS動畫、JQuery等。網(wǎng)上目前按鈕波紋實現(xiàn)效果較多,部分樣式效果展示如下:

          波紋效果展示


          CSS 偽類波紋效果實現(xiàn)

          CSS偽類波紋效果主要借助于before、after偽類與hover懸停選擇器等實現(xiàn)類似波紋效果,本文主要借助after及hover等實現(xiàn)按鈕的波紋效果,本例設(shè)計兩種類似波紋效果,最終實現(xiàn)效果展示如下圖所示:

          設(shè)計樣式1

          設(shè)計樣式2

          本文設(shè)計實現(xiàn)的兩類波紋效果樣式描述如上圖gif所示,其實現(xiàn)過程描述如下:

          1、按鈕基本樣式設(shè)計

          本例按鈕基本樣式主要包括寬度、高度、背景顏色等。使用元素選擇器與類選擇器定義了按鈕元素的基本樣式,其樣式實現(xiàn)代碼描述如下:

          button,.button2,.button{width: 200px; height: 50px; background-color: green;border: 0; cursor: pointer;color: #FFF; font-size: 16px; position: relative;}
          

          .button類主要用以實現(xiàn)設(shè)計樣式1,.button2類主要用于實現(xiàn)設(shè)計效果2,兩類按鈕定義描述如下:

          <button type="button" class="button">Ripple1</button>
          <button type="button" class="button2">Ripple2</button>
          

          2、after偽元素使用

          after偽元素主要用于實現(xiàn)在指定元素的后面添加新的內(nèi)容。本例提供的兩種設(shè)計方式都是在button元素的后面添加新的類似div的新元素,其中樣式1,新添加的元素與button本身重合,尺寸也一致。設(shè)計樣式2中after元素位于button的底部位置,寬度與button相同,高度為指定尺寸5px。兩個設(shè)計中after元素樣式為實現(xiàn)動態(tài)展開效果都涉及寬度width為0。after元素的樣式定義如下:

          .button::after{content: " "; width: 0; height: 50px; position: absolute; left:50%;top: 0%;background-color: red;opacity: 0; transition: all .4s; }
          .button2::after{content: " "; width: 0; height: 5px; position: absolute; left:50%;top: 100%;background-color: red;transition: all .4s; }
          

          after元素CSS樣式定義中使用了transition屬性實現(xiàn)動畫效果,即在0.4s內(nèi)實現(xiàn)寬度從0改變?yōu)?00%。

          3、hover選擇器的使用

          hover選擇器為懸停選擇器,主要對鼠標在HTML元素懸停時樣式進行設(shè)置。本例兩個涉及效果都是借助hover懸停選擇器對after樣式進行設(shè)置,在初始化設(shè)置寬度為0的基礎(chǔ)上寬度改變?yōu)?00%,最終實現(xiàn)兩端伸展的效果。hover選擇器定義after元素樣式描述如下所示:

          .button:hover::after{left:0%; width: 100%; opacity: 0.6;}
          .button2:hover::after{left:0%; width: 100%;}
          

          以上給出了CSS偽元素實現(xiàn)波紋效果,主要借助了after、before偽元素與hover懸停選擇器等。設(shè)計實現(xiàn)效果完整源文件截圖如下:

          案例完整代碼


          以上給出了JavaScript中的事件基本概念及案例分析,如有問題可在評論區(qū)討論。本頭條號長期關(guān)注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可以聯(lián)系作者,共同探討。期待大家關(guān)注!相關(guān)文章鏈接如下:

          前端開發(fā)-JavaScript中的事件(Event)及事件處理總結(jié)

          前端開發(fā)-CSS3動畫實現(xiàn)焦點(圖文輪播)圖效果

          前端開發(fā)-JavaScript DOM動態(tài)生成文本框

          前端設(shè)計-教你如何快速繪制HTML5動畫

          前端設(shè)計-響應(yīng)式頁面開發(fā)基礎(chǔ)

          前端設(shè)計-Ajax技術(shù)及實例展示

          文介紹了網(wǎng)頁編程中的按鈕使用方法。按鈕是網(wǎng)頁中最常用的控件之一,點擊后會觸發(fā)某些程序。即使沒有學習過編程,大家也應(yīng)該知道按鈕的概念。按鈕的最大功能是點擊后觸發(fā)程序。這篇文章主要介紹了如何在網(wǎng)頁中插入按鈕,并講解了按鈕的屬性和使用方法。

          先來看看今天的實例效果。頁面被分為三部分:按鈕、按鈕和按鈕的共有屬性。

          首先是普通按鈕,點擊后文本框的內(nèi)容發(fā)生了變化,但頁面并沒有刷新。接著是重置按鈕,點擊后文本框的內(nèi)容恢復到初始狀態(tài),但頁面仍然沒有刷新。提交按鈕點擊后,頁面重新加載,提交了表單中的內(nèi)容。

          接著是按鈕,點擊后文本框的內(nèi)容發(fā)生了變化,但頁面沒有刷新。按鈕包含一個圖片且為灰色狀態(tài),無法點擊。

          現(xiàn)在來看看實現(xiàn)的代碼。

          輸入和按鈕的寫法非常相似,這里只展示了最基本的寫法。對于初學者來說,看一眼就明白了。

          按鈕有三個類型:普通、重置和提交。按鈕的名稱和值會提交到服務(wù)器端。

          提交時提交的是按鈕的值。ID和name是控制按鈕的命名。

          點擊按鈕時會觸發(fā)onclick事件。autofocus屬性會在頁面加載完成后自動獲取焦點。

          disabled屬性可以設(shè)置按鈕是否可用,不設(shè)置時默認可用。

          form屬性用于設(shè)置提交到哪個URL、是否繞過驗證、以及表單的相關(guān)設(shè)置。

          相關(guān)屬性的優(yōu)先級高于在表單中設(shè)置的屬性。

          以上就是今天的分享內(nèi)容,希望對大家有所幫助。import和button在網(wǎng)頁中插入按鈕的功能是相同的,兩者的外觀也沒有明顯的區(qū)別,但是它們的屬性設(shè)置卻存在一定的重疊。

          為什么需要這兩個標簽呢?而阿里巴巴標簽是HTML 5中新增加的標簽,它的必要性體現(xiàn)在哪里呢?同學們要注意,阿里巴巴標簽不是input,它不是一個封閉的標簽,而是一個唯一的標簽,可以包含文字或其他標簽。

          例如,可以使用阿里巴巴標簽來插入圖片。注意,由于用戶使用的瀏覽器不同,底層的type值是必須填寫的,絕對不能使用默認值。

          今天的分享就到這里,希望各位同學能夠認真練習,做到不看視頻也能夠正確地寫出代碼。所有的案例和相關(guān)文檔都可以向我索取,下期再見,想學編程就關(guān)注我吧。


          主站蜘蛛池模板: 痴汉中文字幕视频一区| 国产一区二区三区无码免费| 在线精品日韩一区二区三区| 亚洲国产精品第一区二区三区| 国产成人av一区二区三区不卡| 精品成人一区二区三区四区| 亚洲色偷偷偷网站色偷一区| 海角国精产品一区一区三区糖心| 国产亚洲欧洲Aⅴ综合一区| 日韩人妻一区二区三区免费 | 乱色熟女综合一区二区三区| 伊人色综合一区二区三区 | 无码乱码av天堂一区二区| 国产一区视频在线| 四虎精品亚洲一区二区三区| 制服美女视频一区| 亚洲乱码一区二区三区在线观看 | 国模少妇一区二区三区| 大香伊人久久精品一区二区| 精品少妇一区二区三区在线 | 狠狠色综合一区二区| 亚洲AV无一区二区三区久久| 中文字幕日本一区| 久久se精品一区精品二区国产| 日韩精品人妻av一区二区三区| 国产日韩精品一区二区在线观看 | 国产一区二区视频在线观看| 国99精品无码一区二区三区 | 中文字幕一区二区人妻性色| 精品无人区一区二区三区在线| 日本一区二区在线不卡| tom影院亚洲国产一区二区 | 亚洲一区二区三区成人网站| 成人国内精品久久久久一区| 福利电影一区二区| 亚洲一区二区三区高清在线观看| 国产91精品一区二区麻豆网站| 精品一区高潮喷吹在线播放| 亚洲午夜精品一区二区| 无码人妻精品一区二区三区久久久| 精品一区二区三区|