H5項目怎么兼容移動端?(第二小節(jié))

上篇文章本來說簡單總結一下移動端兼容問題,但是寫著寫著就覺得這個東西不是一時半會就能說完的,所以索性慢慢來吧,把能夠想到的都給全部羅列一邊吧,萬一剛好有你需要的那一個呢?好了,話不多說!

話不多說,翠花,上干貨啦!

這次來總結一些零碎的小問題吧

h5頁面窗口自動調整到設備寬度并禁止用戶縮放頁面

<!-- 啟用360瀏覽器的極速模式(webkit) -->

<meta name="renderer" content="webkit">

<!-- 避免IE使用兼容模式 -->

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<!-- 針對手持設備優(yōu)化,主要是針對一些老的不識別viewport的瀏覽器,比如黑莓 -->

<meta name="HandheldFriendly" content="true">

<!-- 微軟的老式瀏覽器 -->

<meta name="MobileOptimized" content="320">

<!-- uc強制豎屏 -->

<meta name="screen-orientation" content="portrait">

<!-- QQ強制豎屏 -->

<meta name="x5-orientation" content="portrait">

<!-- UC強制全屏 -->

<meta name="full-screen" content="yes">

<!-- QQ強制全屏 -->

<meta name="x5-fullscreen" content="true">

<!-- UC應用模式 -->

<meta name="browsermode" content="application">

<!-- QQ應用模式 -->

<meta name="x5-page-mode" content="app">

<!-- windows phone 點擊無高光 -->

<meta name="msapplication-tap-highlight" content="no">

移動端click屏幕產生200-300ms的延時響應

這個問題在我們開發(fā)項目時是最容易遇到的也是最可能忽略的,因為我們在平時的開發(fā)中已經習慣了用click來觸發(fā)點擊事件,在PC端的時候是沒有的問題的,但是卻忽略了在移動端出現(xiàn)的延遲問題,其實原因就出在瀏覽器需要如何判斷快速點擊上,當用戶在屏幕上單擊某一個元素時候,例如跳轉鏈接<a href="#"></a>,此處瀏覽器會先捕獲該次單擊,但瀏覽器不能決定用戶是單純要點擊鏈接還是要雙擊該部分區(qū)域進行縮放操作,所以,捕獲第一次單擊后,瀏覽器會先Hold一段時間t,如果在t時間區(qū)間里用戶未進行下一次點擊,則瀏覽器會做單擊跳轉鏈接的處理,如果t時間里用戶進行了第二次單擊操作,則瀏覽器會禁止跳轉,轉而進行對該部分區(qū)域頁面的縮放操作。那么這個時間區(qū)間t有多少呢?在IOS safari下,大概為300毫秒。這就是延遲的由來。造成的后果用戶純粹單擊頁面,頁面需要過一段時間才響應,給用戶慢體驗感覺,對于web開發(fā)者來說是,頁面js捕獲click事件的回調函數(shù)處理,需要300ms后才生效,也就間接導致影響其他業(yè)務邏輯的處理。

解決方案:

1.fastclick插件:

原理:?在檢測到touchend事件的時候,會通過DOM自定義事件立即出發(fā)模擬一個click事件,并把瀏覽器在300ms之后真正的click事件阻止掉;

?使用:

? ? 引入

? ?<script type='application/javascript' src='/path/to/fastclick.js'></script>

? ? 使用了jquery的時候

? ? $(function() {

? ? ? ? FastClick.attach(document.body);

? ? });

? ? 沒使用jquery的時候

? ? if ('addEventListener' in document) {

? ? ? ? document.addEventListener('DOMContentLoaded', function() {

? ? ? ? ? ? FastClick.attach(document.body);

? ? ? ? }, false);

? ? }

? ??在vue或react中使用


? ? 安裝

? ? npm install fastclick -S

? ? ?引入

? ? import FastClick from 'fastclick'

? ? 使用

? ? FastClick.attach(document.body);

2.zepto的touch模塊,tap事件,

原理:利用touchstart和touchend來模擬click事件

使用:因為zepto本身就是為移動端打造的jquery,使用起來和jquery基本一模一樣。至于jq怎么用不用多說了吧?

ios 設置input 按鈕樣式會被默認樣式覆蓋

解決辦法

input,textarea{

border:0;

?-webkit-appearance: none;

}

今天就寫到這里,下次再想起來其他的再更吧!希望對你有一點點的幫助!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 相關知識點 移動端、 適配(兼容)、 ios點擊事件300ms延遲、 點擊穿透、 定位失效...... 問題&解決...
    sandisen閱讀 25,879評論 3 67
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,841評論 1 45
  • # 移動端開發(fā) ### 1. 1px問題如何解決 #### ①偽類 + transform(比較完美) > 原理是...
    sunnyRube閱讀 992評論 0 0
  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,703評論 1 11
  • 1.導出excel表(Thinkphp)
    七百年前閱讀 412評論 0 0

友情鏈接更多精彩內容