摘要:如何讓我們所開發(fā)的手機頁面能有更好的交互體驗,就是這篇文章的主旨移動開發(fā)問題和優(yōu)化小結(jié)。關(guān)于和鼠標事件的延遲說明,我引用葉小釵大神博客里面的一張圖片,如下在手機上,的延遲將近。
1.前言
到目前為止,互聯(lián)網(wǎng)行業(yè)里,手機越來越智能化,移動端占有的比例越來越高,尤其實在電商,新聞,廣告,游戲領(lǐng)域。用戶要求越來越高,網(wǎng)站功能越來越好,效果越來越炫酷,這就要求我們產(chǎn)品質(zhì)量越來越高,web前端開發(fā)而言是一個挑戰(zhàn),是一個難題,也是一個機遇。如何讓我們所開發(fā)的手機頁面能有更好的交互體驗,就是這篇文章的主旨:移動web開發(fā)問題和優(yōu)化小結(jié)。這個只是我自己在開發(fā)的時候知道的坑,如果大家有遇到什么別的坑,歡迎補充,或者覺得我哪里寫錯了,歡迎指點!
2.Meta標簽頁面在手機上顯示時,增加這個meta可以讓頁面強制讓文檔的寬度與設(shè)備的寬度保持1:1,并且文檔最大的寬度比例是1.0,且不允許用戶通過點擊或者縮放等操作對屏幕放大瀏覽。(這個在ios10以上的版本已經(jīng)失效了,即使加了下面的meta,用戶雙擊,縮放還是可以縮放頁面。大家可以按照開發(fā)需求,參考下面的連接進行限制--ios10中禁止用戶縮放頁面)
禁止ios上自動識別電話
禁止android上自動識別郵箱
下面兩個是針對ios上的safari上地址欄和頂端樣式條的(我的手機是安卓,這個沒很仔細測試過,但是都有加上)
3.打電話發(fā)短信
打電話給:0755-10086 發(fā)短信給: 100864.css3過渡動畫開啟硬件加速
ps:網(wǎng)上有說這個用了,手機的耗電量也會增加。我自己也在手機上粗略試過,確實有那么一回事,平常看博客,5分鐘左右少1%,用了硬件加速3分鐘左右就少1%,大家注意合理使用。
.translate3d{ -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); }
說到這里,也順便說下動畫或者過渡的兩個建議:
1.在手機上(其實PC也是一樣)。CSS3動畫或者過渡盡量使用transform和opacity來實現(xiàn)動畫,不要使用left和top。
2.動畫和過渡能用css3解決的,就不要使用js。如果是復(fù)雜的動畫可以使用css3+js(或者html5+css3+js)配合開發(fā),效果只有想不到,沒有做不到。
click事件因為要等待確認是否是雙擊事件,會有300ms的延遲(兩次點擊事件間隔小于300ms就認為是雙擊),體驗并不好。現(xiàn)在的解決方案,第一個就是采用touchstart或者touchend代替click。或者封裝tap事件來代替click 事件,所謂的tap事件由touchstart事件+ touchmove(判斷是否是滑動事件)+touchend事件封裝組成。
關(guān)于touch和鼠標事件的延遲說明,我引用葉小釵大神博客里面的一張圖片,如下
在手機上,click的延遲將近400ms。對于用戶而言,是一個很嚴重的延遲了!所以在手機上,并不建議用click。
附上葉小釵大神的原文--手持設(shè)備點擊響應(yīng)速度,鼠標事件與touch事件的那些事
這個應(yīng)該沒什么好解釋的,就是能不發(fā)請求的就不要發(fā),對于一些小圖標(我這做法是把8K以下的圖標都轉(zhuǎn)換成base64)之類的,可以將圖片用base64,來減少請求的發(fā)送。尤其是在移動端,請求顯得特別珍貴,在網(wǎng)速的不好的情況下,請求就是珍貴中的珍貴。
6-2.圖片壓縮對于整個網(wǎng)站來說,圖片是最占流量的資源之一,能不使用就不適用,圖標可是使用base64編碼,字體圖標代替,SVG等來代替,使用就要選擇最合適的格式,合適的尺寸,然后壓縮--這里推薦騰訊推出的智圖。
PS:過度壓縮圖片大小影響圖片顯示效果,可能會使得圖片變得模糊,一般來說,品質(zhì)在60左右就差不多了!
首屏加載的快慢,直接影響用戶的體驗,建議將非首屏的圖片資源放到用戶需要時才加載。這樣可以大大優(yōu)化首屏加載,減少首屏加載所需要的時間!
ps:懶加載要使用js頻繁操作dom,期間會導(dǎo)致大量重繪渲染,影響性能。
圖片的展示方式有兩種,一種是以圖片標簽顯示,一種是以背景圖片顯示!下面寫了這兩者的區(qū)別。
img:html中的標簽img是網(wǎng)頁結(jié)構(gòu)的一部分會在加載結(jié)構(gòu)的過程中和其他標簽一起加載。
background:以css背景圖存在的圖片background會等到結(jié)構(gòu)加載完成(網(wǎng)頁的內(nèi)容全部顯示以后)才開始加載
也就是說,網(wǎng)頁會先加載標簽img的內(nèi)容,再加載背景圖片background引用的圖片。引入一張圖片,那么在這個圖片加載完成之前,img后的內(nèi)容不會顯示。而用background來引入同樣的圖片,網(wǎng)頁結(jié)構(gòu)和內(nèi)容加載完成之后,才開始加載背景圖片,網(wǎng)頁內(nèi)容能正常瀏覽,但是看不到背景圖片。至于這兩種,大家按照習慣,需求等權(quán)重因素選擇!
在ios上,如果存在局部滾動,就要加這個屬性了!如果不加,滾動會很慢,看起來也會有一卡一卡的感覺。
-webkit-overflow-scrolling: touch;
但是,加上了這個,在ios上會產(chǎn)生bug。
如下布局
.fb-box是一個大div,包含著頁面上的所有元素,包括所看到的那個彈窗.dialog-img,并且設(shè)置了height:100%;-webkit-overflow-scrolling:touch;position:relative;
定位需要,-webkit-overflow-scrolling:touch;也需要,但是這樣設(shè)置,在ios上會有一個bug,頁面滾動一定的距離后,點擊了顯示彈窗,再關(guān)閉的話,就會發(fā)現(xiàn),彈窗的一部分還“留在頁面上”。
解決方案1:
把彈窗的div和.fb-box以兄弟節(jié)點的方式布局,在外層再弄一個div包住,這個坑就算爬起來了,效果如下
解決方案2:
.fb-box去掉position:ralative;。讓彈窗的div參考body定位!
ios下fixed元素容易定位出錯,軟鍵盤彈出時,影響fixed元素定位,會發(fā)生元素錯位(滾動一下又恢復(fù)),有時候會出現(xiàn)閃屏的效果。我也搜過一下這個問題,發(fā)現(xiàn)別人還遇到了我沒遇到過的問題!真是,哎~。所以在手機上,不建議用fixed定位,使用absolute代替!如果一定要用,寫好了之后,一定要多測試幾次!
9.消除transition閃屏PS:這個問題,我近段時間開發(fā),貌似不加上這個代碼也沒什么影響,但是以前就是要求加,就加上了,現(xiàn)在沒加上,也沒反饋有什么問題!
.no-flash { -webkit-transform-style: preserve-3d; -webkit-backface-visibility: hidden; -webkit-perspective: 1000; }10.ios系統(tǒng)中去掉元素被觸摸時產(chǎn)生的半透明灰色遮罩
a,button,input,textarea{-webkit-tap-highlight-color: rgba(0,0,0,0;)}11.ios中去掉默認input默認樣式
input,button,textarea{-webkit-appearance: none;}12.左右滑動,避免頁面跟著滑動
這個細節(jié)是我在基于vue開發(fā)焦點圖的時候遇到的,后來自己找不到方法,直接在sf上提問了,大家可以去參考下:移動端輪播圖,上下滑動的時候不觸發(fā)頁面的滾動
ps:滑動我沒有使用什么庫,是我根據(jù)touchstart和touchend的移動距離來判斷是左右滑動或者上下滑動!
分享發(fā)送的連接是下面這樣
http://www.example.com/dist/html#/index?utm_source=share http://www.example.com/dist/html#/index.html/index?utm_source=share
但是分享之后的實際連接是下面這樣的,別人點擊的分享出去的鏈接,就會打不開網(wǎng)頁
http://www.example.com/dist/html?from=xxxx#/index&utm_source=share http://www.example.com/dist/html#/index.html?from=xxxx/index&utm_source=share
解決方案
1.自定義分享URL地址
2.避免使用單文件應(yīng)用
蘋果公司新出的手機,出了沒多久,段子手就坐不住了,各種調(diào)侃,但是今天我們聊那個!聊下iphoneX給前端帶來的困擾,也是給ui帶來的困擾吧!下面引入大漠,張鑫旭等人對iphoneX齊劉海的一個解決方案!避免到時候跳坑!
iPhone X的缺口和CSS
借助CSS Shapes實現(xiàn)元素滾動自動環(huán)繞iPhone X的劉海
剖析 iOS 11 網(wǎng)頁適配問題
手機管家iPhoneX的適配總結(jié)
上面所說都是遇到的具體問題,至于還有一些比較籠統(tǒng)的細節(jié)優(yōu)化,或者開發(fā)遇到的問題,比如:壓縮代碼,圖片,合并文件等。大家可以參考下面的資源,這些我不展開說了!
1.web移動前端有哪些優(yōu)化方案?
2.web移動端頁面性能優(yōu)化方案
3.Web前端優(yōu)化最佳實踐及工具集錦
4.移動前端系列——移動頁面性能優(yōu)化
5.Web性能優(yōu)化:圖片優(yōu)化
我在移動web(手機網(wǎng)站)上,遇到的問題,暫時就是上面這些了!肯定還是會有很多我沒遇到過的問題,這些以后會記錄,但是不一定會以文章方式發(fā)表。如果大家在開發(fā)移動網(wǎng)站的時候,有遇到過什么大大小小的問題,在評論或者自己以文章方式提醒!方便讓以后的避免踩坑!最后,如果大家有什么補充或者覺得我哪里寫得不好,寫錯了!歡迎指點!
-------------------------華麗的分割線--------------------
想了解更多,關(guān)注關(guān)注我的微信公眾號:守候書閣
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88670.html
摘要:如何讓我們所開發(fā)的手機頁面能有更好的交互體驗,就是這篇文章的主旨移動開發(fā)問題和優(yōu)化小結(jié)。關(guān)于和鼠標事件的延遲說明,我引用葉小釵大神博客里面的一張圖片,如下在手機上,的延遲將近。 1.前言 到目前為止,互聯(lián)網(wǎng)行業(yè)里,手機越來越智能化,移動端占有的比例越來越高,尤其實在電商,新聞,廣告,游戲領(lǐng)域。用戶要求越來越高,網(wǎng)站功能越來越好,效果越來越炫酷,這就要求我們產(chǎn)品質(zhì)量越來越高,web前端開...
摘要:此文已由作者吳家聯(lián)授權(quán)網(wǎng)易云社區(qū)發(fā)布。歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運營經(jīng)驗。播放器的設(shè)計思路重構(gòu)后應(yīng)該包含這些功能支持點播非加密的和直播播放兼容適配移動端根據(jù)平臺自動選擇使用還是。直播的一些特點直播狀態(tài)的判斷。 此文已由作者吳家聯(lián)授權(quán)網(wǎng)易云社區(qū)發(fā)布。 歡迎訪問網(wǎng)易云社區(qū),了解更多網(wǎng)易技術(shù)產(chǎn)品運營經(jīng)驗。 去年年中的時候,借著產(chǎn)品改版的機會,將之前的h5播放器好好整理重構(gòu)了一番...
摘要:在做移動開發(fā)時有很多地方跟端是不一樣的,需要不一樣的設(shè)置,這里就記錄下移動開發(fā)中有用的設(shè)置和一些通用代碼。其他關(guān)于打電話發(fā)短信發(fā)郵件的實現(xiàn)打電話給發(fā)短信給發(fā)郵件給關(guān)于布局移動端中對于的支持已經(jīng)很好,是布局神器。 在做移動 Web 開發(fā)時有很多地方跟 PC 端是不一樣的,需要不一樣的設(shè)置,這里就記錄下移動 Web 開發(fā)中有用的設(shè)置和一些通用代碼。 我的博客地址 HTML 設(shè)置頁面寬度等于...
摘要:標簽相關(guān)能優(yōu)化移動瀏覽器的顯示。會導(dǎo)致添加到主屏后以全屏模式打開頁面時出現(xiàn)黑邊如果不是響應(yīng)式網(wǎng)站,不要使用或者禁用縮放。這一對事件可以用來檢測元素上的單擊和雙擊。 meta標簽相關(guān) viewport:能優(yōu)化移動瀏覽器的顯示。 如果不是響應(yīng)式網(wǎng)站,不要使用initial-scale或者禁用縮放。適配 iPhone 6 和 iPhone 6plus 則需要寫: 大部分 4.7~...
閱讀 1872·2019-08-30 15:53
閱讀 3198·2019-08-30 15:44
閱讀 2811·2019-08-26 13:31
閱讀 1953·2019-08-26 12:10
閱讀 798·2019-08-26 11:01
閱讀 2127·2019-08-23 15:32
閱讀 1588·2019-08-23 13:43
閱讀 2536·2019-08-23 11:58