摘要:在端的用戶體驗中扮演著很重要的角色,那么移動端我們又該如何增強(qiáng)這方面的用戶體驗?zāi)叵旅嫖液唵蔚脑谝苿佣四M了下的效果。其他上面只是在移動端對進(jìn)行了簡單的模擬,還有很多不足的地方。
hover在PC端的用戶體驗中扮演著很重要的角色,那么移動web端我們又該如何增強(qiáng)這方面的用戶體驗?zāi)兀?/p>
下面我簡單的在移動web端模擬了下hover的效果。
效果預(yù)覽請在移動端打開 源碼
核心代碼//按鈕點(diǎn)擊效果 $(document).on("touchstart", ".action-btn:not(.disable)", function (e) { var $this = $(this); var flag = true; //遍歷子類 $this.find("*").each(function () { //查看有沒有子類觸發(fā)過active動作 if ($(this).hasClass("active")) flag = false; }); //如果子類已經(jīng)觸發(fā)了active動作,父類則取消active觸發(fā)操作 if (flag) $this.addClass("active"); }); $(document).on("touchmove", ".action-btn:not(.disable)", function (e) { if ($(this).hasClass("active")) $(this).removeClass("active"); }); $(document).on("touchend", ".action-btn:not(.disable)", function (e) { if ($(this).hasClass("active")) $(this).removeClass("active"); });
實現(xiàn)原理代碼是基于jQuery的
基于touchstart、touchmove、touchend這三個事件,動態(tài)增刪class。
使用方法 場景1默認(rèn)只對含有action-btn class且不含有disable class的對象生效
普通列表點(diǎn)擊
只需要給列表添加上action-btn class以及提供相應(yīng)的active class。
場景2復(fù)雜列表點(diǎn)擊
效果:點(diǎn)擊列表時,觸發(fā)列表點(diǎn)擊效果,點(diǎn)擊小叉時,觸發(fā)小叉點(diǎn)擊效果,小叉所在列不觸發(fā)點(diǎn)擊效果。
其他注意:無論小叉是否有點(diǎn)擊效果(即active class),都需要給小叉添加action-btn class。即:當(dāng)列和列的子元素都有點(diǎn)擊邏輯的時候,都需要給它們添加action-btn class,否則會觸發(fā)父類元素的點(diǎn)擊效果。
上面只是在移動web端對hover進(jìn)行了簡單的模擬,還有很多不足的地方。例如:當(dāng)用戶滑動列表時,滑動開始觸點(diǎn)所在的列的點(diǎn)擊效果會一閃而過。這個是因為點(diǎn)擊效果的觸發(fā)條件是touchstart。我也有嘗試在觸發(fā)touchstart時,延遲一定時間后判斷是否觸發(fā)過touchmove,沒有觸發(fā)的話才觸發(fā)點(diǎn)擊效果。但是在android上表現(xiàn)不佳,所以沒有貼出類。
后續(xù)我會結(jié)合我的這篇文章10行代碼搞定移動web端自定義tap事件中的tap事件進(jìn)行效果優(yōu)化。
文章有什么不對的地方,望大家指正。大家有什么好的實現(xiàn)方法,歡迎交流!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/86481.html
摘要:當(dāng)媒介最大寬度為且是橫屏?xí)r里面的樣式生效目前前端開發(fā)項目類型可以分為兩種方式,和。這樣我們的響應(yīng)式網(wǎng)頁才完全生效了。移動端特點(diǎn)移動端特點(diǎn)沒有有沒有滾動條沒有沒有因為移動端是沒有事件的所以當(dāng)我們在需要兼容移動端的頁面中應(yīng)該盡量少用事件。鄙人最近才剛剛開始學(xué)習(xí)一些關(guān)于移動端的知識,還只是個小白,文中可能有許多理解錯誤,望指出,請多多見諒。 響應(yīng)式 什么是響應(yīng)式頁面呢? 顧名思義響應(yīng)式頁面就是能做...
摘要:移動端按鈕點(diǎn)擊變色之后還原按鈕按鈕方法三網(wǎng)友的力量是強(qiáng)大,后來從網(wǎng)上找到了一個列表頁的,升級版。移動端模擬自定義按鈕點(diǎn)擊效果遍歷子類查看有沒有子類觸發(fā)過動作如果子類已經(jīng)觸發(fā)了動作,父類則取消觸發(fā)操作 需求:點(diǎn)擊按鈕希望像在PC端那樣有個類似于hover的效果,觸摸按鈕變色,手指離開變回原來的顏色; 方法一:CSS3+JS 用keyframes動畫,js點(diǎn)擊按鈕時添加keyframes動...
摘要:移動端按鈕點(diǎn)擊變色之后還原按鈕按鈕方法三網(wǎng)友的力量是強(qiáng)大,后來從網(wǎng)上找到了一個列表頁的,升級版。移動端模擬自定義按鈕點(diǎn)擊效果遍歷子類查看有沒有子類觸發(fā)過動作如果子類已經(jīng)觸發(fā)了動作,父類則取消觸發(fā)操作 需求:點(diǎn)擊按鈕希望像在PC端那樣有個類似于hover的效果,觸摸按鈕變色,手指離開變回原來的顏色; 方法一:CSS3+JS 用keyframes動畫,js點(diǎn)擊按鈕時添加keyframes動...
閱讀 1142·2021-11-15 18:11
閱讀 3238·2021-09-22 15:33
閱讀 3541·2021-09-01 11:42
閱讀 2726·2021-08-24 10:03
閱讀 3684·2021-07-29 13:50
閱讀 2984·2019-08-30 14:08
閱讀 1336·2019-08-28 17:56
閱讀 2333·2019-08-26 13:57