国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 蘋果教程教程 > 詳細(xì)頁面

微信小程序吸底區(qū)域適配iPhoneX的完成_javascript技巧

微信小程序吸底區(qū)域適配iPhoneX的完成_javascript技巧

更新時(shí)間:2024-04-12 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序適配iPhone X主要針對(duì)fix定位到底部的區(qū)域,比如詳情頁或購物車底部的按鈕欄,會(huì)與iPhone X的Home Indicator橫條重疊,這樣在點(diǎn)擊下方按鈕時(shí)很容易誤觸發(fā)手勢(shì)操作,如...

微信小程序適配iPhone X主要針對(duì)fix定位到底部的區(qū)域,比如詳情頁或購物車底部的按鈕欄,會(huì)與iPhone X的Home Indicator橫條重疊,這樣在點(diǎn)擊下方按鈕時(shí)很容易誤觸發(fā)手勢(shì)操作,如下圖:

微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn)_javascript技巧_本站

舊方法

1. 獲取設(shè)備信息

/**
 * 獲取設(shè)備信息
 * @returns {Promise<any>}
 */
export function wechatGetSystemInfo () {
 return new Promise((resolve, reject) => {
  wx.getSystemInfo({
   success: (res) => {
    resolve(res)
   }, fail: (err) => {
    reject(err)
   }
  })
 })
}

2. 設(shè)置css樣式

.view-fix-iphonex {
 bottom: ~'68rpx' !important;
}

.view-fix-iphonex::after {
 content: ' ';
 position: fixed;
 bottom: 0 !important;
 height: ~'68rpx' !important;
 width: 100%;
 background: #fff;
}

3. 設(shè)置一個(gè)標(biāo)識(shí)符isIpx存在vuex中,在小程序初始化完成時(shí)判斷

App.vue 中處理

<script>
 import wx from 'wx'
 import { mapGetters, mapActions } from 'vuex'
 import { wechatGetSystemInfo } from './utils/weappUtils'

 export default {
  onLaunch () {
   this.isIphoneX()
  },
  computed: {
   ...mapGetters(['isIpx'])
  },
  methods: {
   //判斷設(shè)備是否是iphoneX
   isIphoneX() {
    wechatGetSystemInfo().then(res => {
     const deviceModel = 'iPhone X'
     let isIpx = false
     if (res.model.indexOf(deviceModel) > -1) {
      isIpx = true
     }
     if (this.isIpx !== isIpx) {
      this.setIsIpx(isIpx)
     }
    }).catch(err => {})
   },
   ...mapActions(['setIsIpx'])
  }
 }
</script>

4. 在需要適配的頁面中設(shè)置

如在 demo.vue 中處理

<template>
   <div class="fix-view"
     :class="isIpx?'view-fix-iphonex':''"
  >
   吸附在底部的區(qū)域
  </div>
</template>


<script>
 import wx from 'wx'
 import {mapGetters} from 'vuex'

 export default {
  computed: {
   ...mapGetters(['isIpx'])
  },
 }
</script>

<style lang="less">
  .fix-view {
   position: fixed;
   left: 0;
   right: 0;
   bottom: 0;
   height: ~'100rpx';
   line-height: ~'100rpx';
   box-sizing: border-box;
   text-align: right;
   display: flex;
   justify-content: end;
   background: #fff;
  }
</style>

新方法

env() 和 constant()

iOS11 新增特性,Webkit 的一個(gè) CSS 函數(shù),用于設(shè)定安全區(qū)域與邊界的距離,有四個(gè)預(yù)定義的變量:

  • safe-area-inset-left:安全區(qū)域距離左邊邊界距離
  • safe-area-inset-right:安全區(qū)域距離右邊邊界距離
  • safe-area-inset-top:安全區(qū)域距離頂部邊界距離
  • safe-area-inset-bottom:安全區(qū)域距離底部邊界距離

這里我們只需要關(guān)注 safe-area-inset-bottom 這個(gè)變量,因?yàn)樗鼘?duì)應(yīng)的就是小黑條的高度(橫豎屏?xí)r值不一樣)。

注意:當(dāng) viewport-fit=contain 時(shí) env() 是不起作用的,必須要配合 viewport-fit=cover 使用。對(duì)于不支持env() 的瀏覽器,瀏覽器將會(huì)忽略它。

在這之前,筆者使用的是 constant(),后來,官方文檔加了這么一段注釋(坑):

The env() function shipped in iOS 11 with the name constant(). Beginning with Safari Technology Preview 41 and the iOS 11.2 beta, constant() has been removed and replaced with env(). You can use the CSS fallback mechanism to support both versions, if necessary, but should prefer env() going forward.

這就意味著,之前使用的 constant() 在 iOS11.2 之后就不能使用的,但我們還是需要做向后兼容,像這樣:

padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */
padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */

注意:env() 跟 constant() 需要同時(shí)存在,而且順序不能換。

更詳細(xì)說明,參考文檔:Designing Websites for iPhone X

如何適配

了解了以上所說的幾個(gè)知識(shí)點(diǎn),接下來我們適配的思路就很清晰了。

第一步:設(shè)置網(wǎng)頁在可視窗口的布局方式

新增 viweport-fit 屬性,使得頁面內(nèi)容完全覆蓋整個(gè)窗口:

<meta name="viewport" content="width=device-width, viewport-fit=cover">

前面也有提到過,只有設(shè)置了 viewport-fit=cover,才能使用 env()。

第二步:頁面主體內(nèi)容限定在安全區(qū)域內(nèi)

這一步根據(jù)實(shí)際頁面場(chǎng)景選擇,如果不設(shè)置這個(gè)值,可能存在小黑條遮擋頁面最底部?jī)?nèi)容的情況。

body { 
	padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}

第三步:fixed 元素的適配類型一:fixed 完全吸底元素(bottom = 0),比如下圖這兩種情況:

微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn)_javascript技巧_本站

可以通過加內(nèi)邊距 padding 擴(kuò)展高度:

{ 
	padding-bottom: constant(safe-area-inset-bottom);
  padding-bottom: env(safe-area-inset-bottom);
}

或者通過計(jì)算函數(shù) calc 覆蓋原來高度:

{ 
	height: calc(60px(假設(shè)值) + constant(safe-area-inset-bottom));
  height: calc(60px(假設(shè)值) + env(safe-area-inset-bottom));
}

注意,這個(gè)方案需要吸底條必須是有背景色的,因?yàn)閿U(kuò)展的部分背景是跟隨外容器的,否則出現(xiàn)鏤空情況。

還有一種方案就是,可以通過新增一個(gè)新的元素(空的顏色塊,主要用于小黑條高度的占位),然后吸底元素可以不改變高度只需要調(diào)整位置,像這樣:

{ 
	margin-bottom: constant(safe-area-inset-bottom);
  margin-bottom: env(safe-area-inset-bottom);
}

空的顏色塊:

{ 
	position: fixed;
  bottom: 0;
  width: 100%;
  height: constant(safe-area-inset-bottom);
  height: env(safe-area-inset-bottom);
  background-color: #fff;
}

類型二:fixed 非完全吸底元素(bottom ≠ 0),比如 “返回頂部”、“側(cè)邊廣告” 等

像這種只是位置需要對(duì)應(yīng)向上調(diào)整,可以僅通過外邊距 margin 來處理:

{ 
	margin-bottom: constant(safe-area-inset-bottom);
  margin-bottom: env(safe-area-inset-bottom);
}

或者,你也可以通過計(jì)算函數(shù) calc 覆蓋原來 bottom 值:

{ 
	bottom: calc(50px(假設(shè)值) + constant(safe-area-inset-bottom));
  bottom: calc(50px(假設(shè)值) + env(safe-area-inset-bottom));
}

你也可以使用 @supports 隔離兼容樣式

寫到這里,我們常見的兩種類型的 fixed 元素適配方案已經(jīng)了解了吧。如果我們只希望 iPhoneX 才需要新增適配樣式,我們可以配合 @supports 來隔離兼容樣式,當(dāng)然這個(gè)處理對(duì)頁面展示實(shí)際不會(huì)有任何影響:

@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) { 
	div {
  	margin-bottom: constant(safe-area-inset-bottom);
    margin-bottom: env(safe-area-inset-bottom); 
  }
}

到此這篇關(guān)于微信小程序吸底區(qū)域適配iPhoneX的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)小程序吸底區(qū)域適配iPhoneX內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

您可能感興趣的文章:
  • 微信小程序 iPhoneX底部安全區(qū)域(底部小黑條)適配(一分鐘解決)
  • 微信小程序適配iphoneX的實(shí)現(xiàn)方法


溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        亚洲一区二区影院| 1024成人网色www| 国产日韩v精品一区二区| 久久成人久久鬼色| 久久精品一区二区三区av| 国产99久久久国产精品| 国产精品国产三级国产a| 色综合久久久久| 亚洲高清视频在线| 精品国产91九色蝌蚪| 99re视频精品| 亚洲国产欧美日韩另类综合 | 欧美激情自拍偷拍| 91片黄在线观看| 欧美aⅴ一区二区三区视频| 51精品久久久久久久蜜臀| 国产在线视频一区二区| 亚洲国产精品av| 欧美精品久久一区| 国产成人8x视频一区二区| 亚洲最大成人网4388xx| 337p粉嫩大胆噜噜噜噜噜91av| 丁香桃色午夜亚洲一区二区三区| 一区二区三区高清不卡| 久久综合色一综合色88| 91欧美激情一区二区三区成人| 日韩精品一级中文字幕精品视频免费观看 | 中文字幕av一区二区三区高| 91国偷自产一区二区开放时间| 午夜精品福利一区二区三区av | 奇米影视在线99精品| 国产人成一区二区三区影院| 欧美在线一区二区| 不卡影院免费观看| 极品少妇xxxx精品少妇偷拍| 1024成人网| 精品久久久久久久久久久久久久久 | 精品99999| 欧美丝袜自拍制服另类| 成人免费视频视频| 国产一区二区看久久| 五月天欧美精品| 自拍偷在线精品自拍偷无码专区| 欧美日韩激情一区二区三区| av男人天堂一区| 国产成人自拍在线| 蜜桃传媒麻豆第一区在线观看| 亚洲日本免费电影| 国产日韩欧美综合在线| 欧美一区日本一区韩国一区| 97久久精品人人澡人人爽| 黄色日韩网站视频| 免费成人性网站| 偷窥少妇高潮呻吟av久久免费| 亚洲欧美在线另类| 中文字幕的久久| 国产色产综合色产在线视频| 精品国产乱码久久久久久1区2区| 7777精品伊人久久久大香线蕉| 色综合久久中文字幕综合网 | 久久爱www久久做| 丝袜a∨在线一区二区三区不卡 | 国产精品家庭影院| 国产三区在线成人av| 精品国产一区二区三区不卡 | 精品国产99国产精品| 日韩写真欧美这视频| 7777精品伊人久久久大香线蕉经典版下载 | 日韩成人免费在线| 水野朝阳av一区二区三区| 香蕉久久一区二区不卡无毒影院| 亚洲最大成人网4388xx| 亚洲线精品一区二区三区八戒| 亚洲视频精选在线| 亚洲你懂的在线视频| 一区二区三区中文字幕精品精品 | 岛国av在线一区| 99国产精品视频免费观看| 波多野结衣中文字幕一区| 99精品国产一区二区三区不卡| 91老师国产黑色丝袜在线| 欧美在线一二三| 日韩视频免费观看高清完整版在线观看| 欧美日韩一区二区三区免费看 | 国产一区二区调教| 国产高清久久久久| 色综合色综合色综合| 欧美日韩不卡视频| 久久毛片高清国产| 亚洲精品日韩综合观看成人91| 亚洲午夜一二三区视频| 美日韩一级片在线观看| 国产91综合网| 欧美日韩黄色影视| 国产亚洲欧美日韩日本| 日韩美女啊v在线免费观看| 亚洲成人黄色影院| 国产风韵犹存在线视精品| 91成人在线精品| 久久久影视传媒| 一区二区日韩电影| 国产真实乱子伦精品视频| 色香蕉成人二区免费| 日韩欧美国产一区二区在线播放 | 美女国产一区二区三区| 成人免费高清在线| 91精品国产品国语在线不卡| 国产欧美一区二区三区在线看蜜臀 | 一区二区中文字幕在线| 日韩电影一区二区三区| av亚洲精华国产精华精| 精品国产免费久久| 亚洲一区影音先锋| 99久免费精品视频在线观看| 日韩欧美高清在线| 亚洲国产综合人成综合网站| 成人国产在线观看| 亚洲精品一区二区三区福利 | 极品销魂美女一区二区三区| 欧美影院午夜播放| 亚洲欧洲无码一区二区三区| 久久91精品久久久久久秒播| 欧美影片第一页| 亚洲女性喷水在线观看一区| 国产精品99久久久久| 日韩一区二区三区免费看 | 欧美综合色免费| 国产欧美日韩不卡免费| 久久99精品国产麻豆婷婷| 欧美日韩一级黄| 一区二区三区在线影院| 亚洲女人的天堂| av在线这里只有精品| 久久尤物电影视频在线观看| 国产片一区二区| 国产 欧美在线| 亚洲国产精品v| 波多野结衣中文一区| 中文字幕成人av| 成人激情午夜影院| 国产精品免费aⅴ片在线观看| 精品亚洲aⅴ乱码一区二区三区| 欧美酷刑日本凌虐凌虐| 婷婷久久综合九色综合绿巨人| 欧美天堂亚洲电影院在线播放| 亚洲影视资源网| 欧美日韩一区中文字幕| 肉丝袜脚交视频一区二区| 欧美一区三区四区| 国产老女人精品毛片久久| 国产午夜精品一区二区| 成人爱爱电影网址| 亚洲黄色性网站| 91精品国产欧美一区二区18| 美女视频网站久久| 国产清纯白嫩初高生在线观看91 | 亚洲精品视频在线看| 在线观看日韩高清av| 天天操天天色综合| 精品国产乱码久久久久久久久| 国产精品一二三四| 最新日韩av在线| 欧美日韩在线直播| 精品一区二区在线免费观看| 欧美激情在线看| 欧美色综合久久| 久久精品国产色蜜蜜麻豆| 国产亚洲va综合人人澡精品 | 欧美日韩中文精品| 精品一区二区三区香蕉蜜桃| 国产欧美日韩三区| 欧美视频一区在线观看| 美腿丝袜亚洲色图| 亚洲三级在线看| 精品少妇一区二区三区免费观看| 国产成人免费视频一区| 亚洲福利视频三区| 国产精品丝袜久久久久久app| 欧美在线视频不卡| 国产九九视频一区二区三区| 一区二区三区在线播放| 欧美精品一区二区在线观看| 色天天综合色天天久久| 国产一区91精品张津瑜| 亚洲国产精品久久久久婷婷884| 久久影音资源网| 欧美精品123区| 91久久香蕉国产日韩欧美9色| 看片的网站亚洲| 亚洲在线一区二区三区| 国产欧美一区二区三区在线老狼| 欧美丝袜丝交足nylons| av网站免费线看精品| 国产做a爰片久久毛片| 久久影院电视剧免费观看| 精品亚洲国产成人av制服丝袜| 亚洲国产三级在线| 中文字幕欧美一| 久久久久久日产精品| 日韩欧美精品在线视频|