嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

如何打造一個適配的H5

2016-12-10    濤濤

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

以往拿到一份視覺稿要做頁面適配,通常都是針對不同分辨率尺寸做斷點寫 media query,然后看效果再微調。開發過程中視覺稿要是做了修改,修改的地方就得再走一遍分辨率測試和微調,這時想屎的心都有了。而且這些適配都是建立在已 知的分辨率尺寸庫上,如果市面新出來一款分辨率尺寸機型,呵呵,又要奔跑在測試微調路上。是不是能有用一套代碼就適應各種分辨率窗口,那么就不會再有上面 這些煩惱,且開發效率快和維護成本會降低很多。

答案是有的,而且這種形式最早出現于 flash 全屏整站,前陣子拜讀了舉總介紹的一篇文章關于圖片適配屬性 Object-fit ,發現這個屬性 Object-fit  雖然只能應用在圖片上,但是它的適配思路完全可以借鑒運用在 H5 頁面適配上,這種思路即是「縮放」,也是本篇文章的核心內容。就是無論窗口寬高比怎樣,頁面能自動縮放到窗口大小,而且元素的坐標及大小還可以使用和便于js計算的px為單位。

這里借用 Object-fit 的方法命名方便記憶,下面簡單介紹 H5 頁面適配幾種展現形式。

1、contain 模式:以內容中心為基點按照視覺稿的寬高比縮放以適配窗口顯示全頁面內容,窗口與內容的寬度比或高度比之間較小者縮放填滿窗口,當窗口寬高比和視覺稿不同時,另一方向的兩側出現留空部分。

01

2、cover 模式:以內容中心為基點按照窗口的寬高比等比縮放以適配窗口,窗口與內容的寬度比或高度比之間較大者縮放填滿窗口,當窗口寬高比和視覺稿不同時,另一方向的兩側超出窗口被裁剪,這種模式不會出現「contain 模式」的留空部分情況。

02

3、fill 模式:以內容中心為基點頁面拉伸填充滿整個窗口以適配窗口,當窗口寬高比和視覺稿不同時,內容一定程度上被拉伸

03

4、scale-width 模式:頁面橫向縮放填充滿窗口,縱向按視覺稿的寬高比放大。出來的效果有兩種可能性,「contain 模式」或者「cover 模式」的效果。

04

5、scale-height 模式:頁面縱向縮放填充滿窗口,橫向按視覺稿的寬高比放大。出來的效果有兩種可能性,「contain 模式」或者「cover 模式」的效果。

05

下面分別來介紹我在項目中的對于適配的思考和選擇以及實現方法。

在做適配之前,首先要和設計師定義好頁面的寬高比,即設計稿的分辨率大小,因為活動主要是通過微信進行傳播推廣,所以這里我使用的是 iphone5/5s 機型微信瀏覽器窗口分辨率 640*1008。選擇這個分辨率主要出于以下 2 點綜合考慮:

  1. 客戶端分辨率占比數。根據友盟和騰訊云運營活動近幾個月的數據統計,iphone5/5s 640*1136 這個分辨率是 Ios 平臺占比最多的,同時過高的分辨率對低端機型是一種浪費,需要花額外多的流量來下載這些資源;
  2. 同寬高比尺寸的平臺占比數。同樣尺寸比的 Android 平臺分辨率 720*1280 和 1080*1920 占比數也是最多的。

拿最近做的項目舉例,該 H5 頁面基本可歸類為以下 種內容類型:

1、填充滿窗口的層,比如背景幕布(圖1)。

06

圖1

這種層實現最簡單,采用「fill 模式」適配形式。實現效果核心代碼如下:

中的圖片適配處理,采用「cover 模式」適配形式。實現效果核心代碼如下:

2、同時基于水平方向和垂直方向居中的層,比如頁面正文內容部分(圖2)。

09

圖2

像這種層背景色是純色或透明,「contain 模式」是最佳選擇可在任何分辨率窗口顯示全頁面內容,出現留空部分的顏色可以通過添加一個寬高 100% 的層設置背景屬性來修補。實現效果代碼如下:

10 11

3、填充滿整個窗口且邊緣不是純色的層,比如(圖3)。

12

圖3

「cover 模式」和「fill 模式」可以作為選擇。從易用性看,「fill 模式」可以適應窗口區域,但從視覺體驗上看,寬高不等比例的拉伸會造成圖片失真,同時該層的主要內容及交互操作集中在中部,不重要的邊緣可以適當被裁 剪,故這里選擇「cover 模式」來做適配會更好,實現效果代碼同上面示例基本一樣,區別在于縮放比處,代碼如下:

13 14

4、大于屏幕的層,可實現跟隨手勢移動場景畫面,比如(圖4)。

15

圖4

「scale-width 模式」和「scale-height 模式」適合運用在這類場景,(圖4)是橫向左右移動層,故這里選用「scale-height 模式」適配形式。實現效果代碼如下:

16 17 18

這里寬高等比縮放使用方法除了 transform:scale(x,y),也可以使用 zoom 進行縮放,視實際場景需求選擇合適的方法,兩者主要不同是:

  1. zoom 的基點不能自定義,固定是左上角 (0,0)
  2. transform:scale(x,y) 縮放轉換后仍占據原始空間大小,zoom 縮放轉換后占據空間等于縮放后的大小。

還有一些復雜的層,但無外乎都可以拆分成以上幾種類型層,將內容分層出來,每個層根據內容形式選用相應的適配模式進行縮放。

總結

1、適配的核心思想是「縮放」。

2、每一種適配模式都不是絕對的,需要根據需求場景選用合適的形式。適配前先跟設計師溝通明確適配表現形式,遇到復雜的場景可以把內容拆分出來區分適配。當頁面內容不適合方向旋轉展示,此時就不要無腦適配,有兩個方式可以選擇:

  1. 找設計師出一版另一方向的響應式設計稿然后制作成響應式頁面;
  2. 出現提示方式讓用戶旋轉回支持的方向,比如(圖5)。

19

圖5

3、需要設定窗口等于設備物理寬度,即 viewport 為 width=device-width, initial-scale=1

4、適配相關的 js 放在 head 里,文檔結構加載完成就先執行適配 js,給 body 加一個顯隱動畫規避在 js 未執行完成時頁面出現縮放前后,顯隱動畫相關代碼如下:

20

最后,以上是我自己在這項目 H5 適配的方法和應用,也許有更好的適配方案,請各位不吝賜教,多多指點。

參考文獻

  1. Danny, Markov. Quick Tip: Get to Know the CSS Object Fit and Position Properties[EB/OL]. http://tutorialzine.com/2016/04/quick-tip-get-to-know-css-object-fit-position/, 2016-04-19

藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 亚洲国产精品一区在线观看不卡| 国产精品美女www爽爽爽视频| 麻豆精品网站| 久久亚洲一区二区三区四区| 久久久xxx| 久久深夜福利免费观看| 欧美一区二区三区另类| 午夜精品999| 久久久久久穴| 欧美风情在线观看| 日韩视频国产视频| 亚洲专区一区| 久久久精品一区二区三区| 久久久精品动漫| 欧美另类视频在线| 欧美日韩综合| 狠狠操狠狠色综合网| 在线观看国产精品网站| av成人免费在线| 久久高清一区| 亚洲欧洲免费视频| 亚洲女人小视频在线观看| 久久国产日本精品| 欧美精品成人91久久久久久久| 欧美日韩亚洲一区二区三区| 国产区欧美区日韩区| 亚洲黑丝一区二区| 亚洲综合电影| 亚洲第一搞黄网站| 亚洲免费影视第一页| 美女精品在线观看| 国产精品区一区二区三| 亚洲日本欧美日韩高观看| 欧美淫片网站| 夜色激情一区二区| 农夫在线精品视频免费观看| 国产日韩精品一区二区| 亚洲免费成人av| 你懂的国产精品| 亚洲欧美另类在线观看| 欧美金8天国| 亚洲国产高清视频| 久久精品理论片| 亚洲私人影吧| 欧美日韩亚洲天堂| 99精品国产在热久久下载| 久久全球大尺度高清视频| 亚洲一区二区三区激情| 欧美高清视频一二三区| 99视频在线精品国自产拍免费观看| 亚洲看片一区| 女女同性女同一区二区三区91| 亚洲在线成人精品| 欧美吻胸吃奶大尺度电影| 亚洲精品国产精品久久清纯直播 | 亚洲一区二区三区四区在线观看| 欧美高清在线一区| 亚洲欧洲日韩女同| 亚洲欧洲精品一区| 欧美日本中文字幕| 亚洲视频www| 亚洲巨乳在线| 欧美天堂在线观看| 亚洲一区二区三区中文字幕在线 | 欧美激情一区二区三区在线视频观看 | 亚洲天堂免费观看| 国产精品久久久久久av福利软件| 一区二区日韩伦理片| 亚洲欧洲免费视频| 欧美三区在线| 欧美在线视频免费| 欧美在线视频免费观看| 国内精品免费在线观看| 欧美成人国产va精品日本一级| 久久综合国产精品| 亚洲国产欧美国产综合一区| 亚洲国产高潮在线观看| 欧美日韩亚洲一区二区| 久久福利电影| 欧美成人精品一区| 一区二区三区视频在线播放| 亚洲视频每日更新| 国产综合久久| 亚洲免费观看高清完整版在线观看熊| 欧美视频在线观看免费网址| 欧美一区二区三区四区视频| 欧美在线观看天堂一区二区三区| 亚洲福利国产精品| 一本色道精品久久一区二区三区| 国产日韩亚洲欧美| 亚洲欧洲精品一区二区| 国产夜色精品一区二区av| 亚洲高清视频一区| 国产乱人伦精品一区二区| 欧美成人性生活| 国产精品videosex极品| 麻豆freexxxx性91精品| 欧美日韩国产综合久久| 国产一区二区三区无遮挡| 欧美激情免费在线| 国产精品自拍三区| 亚洲人成人一区二区在线观看| 国产精品日韩在线| 亚洲精品国偷自产在线99热| 国产一区二区激情| 一本色道久久综合亚洲精品不卡| 韩日成人在线| 亚洲视频在线观看三级| 亚洲片国产一区一级在线观看| 亚洲欧美一区二区三区在线| 99国产精品国产精品毛片| 久久国产欧美精品| 欧美一区在线视频| 欧美网站在线观看| 亚洲麻豆av| 亚洲人成人99网站| 久久理论片午夜琪琪电影网| 欧美亚洲三区| 欧美日韩国产小视频在线观看| 久久综合九色综合网站| 国产精品毛片va一区二区三区 | 久久精品二区| 亚洲欧美bt| 欧美日韩国产成人在线免费 | 午夜日韩在线观看| 亚洲欧美影院| 国产精品久久久久久久久婷婷| 欧美成人中文字幕| 在线看日韩欧美| 久久精品国产免费观看| 久久激情视频免费观看| 国产精品亚洲综合| 亚洲亚洲精品三区日韩精品在线视频 | 欧美喷潮久久久xxxxx| 欧美高清在线播放| 亚洲国产精品电影在线观看| 欧美中文字幕久久| 久久伊伊香蕉| 怡红院精品视频| 噜噜噜久久亚洲精品国产品小说| 久久久久成人精品免费播放动漫| 国产视频丨精品|在线观看| 午夜在线精品偷拍| 久久久久免费观看| …久久精品99久久香蕉国产| 麻豆成人在线| 亚洲精品欧美激情| 午夜精品久久久久久久蜜桃app | 亚洲在线视频观看| 国产精品美女久久久| 亚洲一区二区在线观看视频| 欧美亚洲在线观看| 1769国内精品视频在线播放| 免费视频一区二区三区在线观看| 亚洲国产精品ⅴa在线观看| 亚洲美女网站| 国产精品久久久久天堂| 欧美一区1区三区3区公司| 久久三级视频| 99精品99久久久久久宅男| 国产精品视频精品视频| 欧美国产一区视频在线观看| 最近看过的日韩成人| 欧美日韩三区| 久久狠狠一本精品综合网| 欧美国产一区视频在线观看| 一本色道久久综合亚洲精品不| 国产精品九九久久久久久久| 亚洲欧美精品suv| 欧美激情视频一区二区三区免费| 在线亚洲自拍| 影音先锋亚洲视频| 欧美日韩美女| 久久精品成人欧美大片古装| 亚洲精品精选| 两个人的视频www国产精品| 一区二区三区.www| 伊人久久大香线蕉av超碰演员| 欧美激情中文字幕一区二区| 亚洲欧美经典视频| 亚洲人成在线观看| 亚洲男同1069视频| 最新国产成人在线观看 | 欧美女同视频| 欧美先锋影音| 久久久久久久一区二区| 亚洲无限乱码一二三四麻| 久久久国产精品亚洲一区| 日韩一级不卡| 国产一区二区按摩在线观看| 欧美手机在线| 蜜臀久久久99精品久久久久久| 亚洲夜晚福利在线观看| 久久综合电影| 欧美在线精品一区| 一区二区av在线| 国产色爱av资源综合区| 欧美日韩三区四区| 欧美成人精品一区二区三区| 久久福利精品|