1. 程式人生 > >微信十人牛牛房卡html5實現分層螢幕適配

微信十人牛牛房卡html5實現分層螢幕適配

螢幕適配

螢幕適配應當指內容 適配區 和 螢幕區 間的適配關係。

單屏適配有 contain、cover 或 fill,多屏常見是 依寬 。

contain 和 cover 還需要 定位 來處理留白和超出的內容。

而同一個 H5 裡不同內容往往用不同適配方式,即 分層。

優選CSS

  1. 頁面載入後 js 往往需要延時至少 70ms 才能獲取正確的 webview 寬高

  2. css 往往最先執行,且 cssom 的解析往往和 dom 在最開始並行構建

  3. js 會等待 dom 和 cssom 處理完後才能執行,而 css 只需等待 dom

  4. 相比 js 微信十人牛牛房卡出售(h5.hxforum.com) 企鵝 2952777280 

  5. 微信 Tel17061863533

  6. 在切換橫豎屏時要切換 2 次程序來重繪,css 無需切換

對於螢幕適配這類表現問題,能用 css 實現就應該用 css 實現。

整層適配

為確保各層元素同步縮放,不走樣,每層的 適配區 應當等於設計稿大小。

直接的實現就是構造和 適配區 一樣尺寸的 容器, 整層適配。

容器 內可以有若干個相同適配方式的 元素。

以 svg 實現為例:

1234567891011121314151617181920212223242526<!doctype html><html><body><style>.layer {position: absolute;
top: 0;left: 0;width: 100%;height: 100%;}</style><!-- fill --><svg class="layer" viewBox="0 0 1080 1920" preserveAspectRatio="none"> <!-- 容器 --><rect x="0" y="0" width="1080" height="1920" fill="rgba(96,96,96,.08)"/>  <!-- 元素 --></svg><!-- contain 居中 --><svg class="layer"
 viewBox="0 0 1080 1920" preserveAspectRatio="xMidYMid meet"> <!-- 容器 --><rect x="0" y="233" width="1080" height="1407" fill="#1565C0"/>  <!-- 元素 --></svg><!-- contain 居底 --><svg class="layer" viewBox="0 0 1080 1920" preserveAspectRatio="xMidYMax meet"> <!-- 容器 --><rect x="444" y="1779" width="191" height="39" fill="#1565C0"/>  <!-- 元素 --></svg></body></html>

實際效果:

整層適配 實現簡單,開發時直接讀取設計稿值,可以滿足大部分靜態頁面需求。

但在 h5 動畫多的時候,就得考慮動畫流暢,頁面效能了。

用可替換元素如 <img> <object> <svg> 等做 容器,以及用背景圖做 元素 的,

在應用 css 動畫時有效能缺陷:

  1. 對 容器 內 元素 應用 css 動畫會造成頻繁重排和重繪,導致卡頓。

  2. 將和 適配區 尺寸相同的 容器 提升為合成層時所佔記憶體過大,有多少層記憶體就翻多少倍。

為這些實現方案提升效能就要針對 容器 動畫,並減小 容器 的尺寸,最好是和一層裡所有 元素 的最小總面積相等,做到 精簡適配

精簡適配

公式

推導過程見 H5 分層螢幕適配公式推導

12345678910111213141516171819202122232425262728293031323334353637設計稿寬 v高 g適配前元素橫座標 x縱座標 y寬 w高 h適配後容器橫座標 x3 = x*u/v縱座標 y3 = y*f/g適配後元素橫座標 x4 = m*u + (x - m*v)/w*w1 = m*v/w*w3 + (x - m*v)/w*w1縱座標 y4 = n*f + (y - n*g)/h*h1 = n*g/h*h3 + (y - n*g)/h*h1寬 w3 = (w/v)*u高 h3 = (h/g)*f當 contain 方式適配時縮放值 s = Math.min(f/g, u/v)橫向左留白佔總留白 o = (m*v - x)/w縱向上留白佔總留白 p =  (n*g - y)/h當 cover 方式適配時縮放值 s = Math.max(f/g, u/v)橫向左超出佔總超出 o = (x - m*v)/w縱向上超出佔總超出 p =  (y - n*g)/h

相關推薦

html5實現分層螢幕

螢幕適配螢幕適配應當指內容 適配區 和 螢幕區 間的適配關係。單屏適配有 contain、cover 或 fill,多屏常見是 依寬 。contain 和 cover 還需要 定位 來處理留白和超出的內容。而同一個 H5 裡不同內容往往用不同適配方式,即 分層。優選CSS頁面

最近很火的棋牌搭建的源碼的一個BUG修復

std ray 下載 .com amd 其它 ceil ans 源碼 最新版修復所有bug出租微信牛牛棋牌房卡搭建(h5.fanshubbs.com)扣扣1687054422 BUG說明:當後臺設定某個玩家的控制贏率後。10局20局的就沒有問題。當是大於20,就會出現玩到最

小程式-滾動Tab選項

前言:今天呢 給大家詳細講解一下滾動Tab選項卡:左右可滑動切換的效果,希望對大家做專案時候有用! 以前也遇到過這個,但是沒有做記錄。轉載來源於:https://www.jianshu.com/p/94849f9c2ff2 一、wxml結構 tab標題因一排八個,所以使用 scroll

小程式-06 tab選項滑動切換與列表Item(scroll 、 swiper)資料的獲取等所用到的都有了

目錄   示例圖片 WXML js WXSS 示例圖片 WXML <view > <scroll-view scroll-x="true" class="tab-h" scroll-left="{{scrollLeft}}

記一次業務上線出現的故障---轉發信用卡邀約開業務出現高几率失敗情況

具體情況: 在一次協助xx銀行上線時,遇到這樣的一個問題:此業務功能是將信用卡邀約開卡的頁面轉發給微信好友,好友點開連結後可以直接跳轉到申請信用卡的頁面; 出現的問題是經過大量的測試,有50%的是友點開頁面後還是一個邀請信用卡開卡的頁面。 故障原因是: 程式碼的問題 是soc

小程式訊息通知-打考勤

微信小程式訊息通知-打卡考勤 效果: 稍微改一下js就行,有不必要的錯誤,我就不改了,哈哈! index.js //index.js const app = getApp() // 填寫微信小程式appid var appid =

python實現付款碼支付(刷支付)(純python)

參考連結https://github.com/Jolly23/wx_pay_python https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_10&index=1 use.py from wx_pay impo

11月份最新股票區塊鏈拉群,40小群的拉群方法,客戶提供精準資料的股民粉拉群

11月份最新通訊錄拉群方法 獨家開源協議軟體拉群,現在市面上最穩定的拉群方法 現在市面上拉群基本是以雲端群控手機拉群,但是也有弊端,1:拉群不穩定,2:群量不穩定,3:拉群耗費時間長,往往需要拉到天亮而且群量拉不到客戶的數量,導致客戶營銷不到位 協議拉群通過精準

小程式swiper控制元件死的解決方法

微信小程式swiper控制元件,在使用過程中會偶爾出現卡死現象(不能再左右滑動),跟蹤一下,歸結原因可能是swiper元件內部問題,當無法響應使用者快速翻動動作時,當前頁變數current無法變更為正確頁碼索引,而是被置為0,所以,解決這個問題的思路如下:swiperchan

小程式滾動Tab選項:左右可滑動切換

最終效果如上。問題: 1、tab標題總共8個,所以一屏無法全部顯示。 2、tab內容區左右滑動切換時,tab標題隨即做標記(active)。 3、當active的標題不在當前

小程式,易打

《易打卡》—— 精準定位,一鍵打卡,記錄便捷匯出,排名實時更新,戒掉遲到,換你高效人生!這款小程式是在微信內測開始時期就一邊學習一邊開發,開發過程中也是隨著微信小程式的功能以及API迭代而不斷更新調整產品的形態與功能。http://www.see-source.com/w

小程式swiper元件滑動死現象解決

專案中用swiper作為滑動展示展品頁面,swiper-item高達49個 在使用過程中出現了滑動卡死的現象,解決方案如下 在swiper裡面監聽bindanimationfinish事件 bindanimationfinish在swiper卡死的時候也會觸發(神奇)

小程式開發之選項(視窗底部TabBar)頁面切換

微信小程式開發中視窗底部tab欄切換頁面很簡單很方便. 程式碼: 1.app.json //app.json { "pages":[ "pages/index/index",

小程式開發之選項tab(swiper)滑動切換功能實現

該功能實現依賴於 微信小程式 模板容器 swiper,及其提供的屬性方法;具體實現如下:上程式碼index.wxml<!--pages/index/index.wxml--> <view class="page"> <!-- <vi

對“年產品思考”的思考

## 整體感受 對於社交/視訊/直播的本質有很好的認識,微信的各種功能也是這些本質東西在不同時代背景下的體現。希望自己能get到這些本質的東西。 張小龍對於目標/結果的認知較高,更多的是從產品/使用者出發,而不是為了獲得什麼樣的結果/資料才去做什麼事情,資料只是最終的一個結果。 #

開發模式之自己定義菜單實現

ces event pre api pid 開發人員 web weixin src 編輯模式和開發模式是有沖突的。所以我們啟用微信公眾號的開發模式之後。那些菜單是看不到的哦。只是如今個人訂閱號是不能夠使用高級開發人員模式的。如自己定義菜單,只是我們還是能夠通過測試號

端調取相冊和攝像頭,實現圖片上傳,並上傳到本地服務器

配置 epic 替換 pan source 工具 alert 調試 family 在微信公眾號網頁開發時,遇到了圖片上傳的問題,查看了微信的開發者文檔,裏面的資料比較全。接著我們看一下整個的流程 1、config權限配置 $.ajax({ url:‘wx_getC

小程序--Tab欄切換的快速實現

font log borde 1-1 enter cnblogs 小程序 ont justify 上效果!    wxss樣式代碼: 1 .tabs-item.selected { 2 color:rgba(171,149,109,.8);

"戴聖誕帽"的一個簡易實現程序

由於 找到 blog ubuntu essential 位置 mark uil build 準備安裝 由於是利用別人寫的人臉識別的一個庫,所以需要在import之前安裝好相應的環境。如果直接安裝face_recognition庫的時候就會直接提示缺少的相應的dlib庫。而d

紅包的隨機算法是怎樣實現的?

public 最重要的 簡單 額的 mar 我們 算法 money 對象 我在知乎上看到這樣一個問題微信紅包的隨機算法是怎樣實現的? 有人說騰訊大致是這樣實現的: public static double getRandomMoney(LeftMoneyPackage _l