<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      css 實(shí)現(xiàn)劉海屏樣式兼容并支持 js 獲取劉海屏高度后動(dòng)態(tài)修改

      css

      :root {
        --safe-area-inset-top: 0px;
        --safe-area-inset-right: 0px;
        --safe-area-inset-bottom: 0px;
        --safe-area-inset-left: 0px;
        --safe-area-inset-constant-top: 0px;
        --safe-area-inset-constant-right: 0px;
        --safe-area-inset-constant-bottom: 0px;
        --safe-area-inset-constant-left: 0px;
      }
      
      @supports (top: env(safe-area-inset-top, 44px)) {
        :root {
          --safe-area-inset-top: env(safe-area-inset-top, 44px);
          --safe-area-inset-right: env(safe-area-inset-right, 34px);
          --safe-area-inset-bottom: env(safe-area-inset-bottom, 34px);
          --safe-area-inset-left: env(safe-area-inset-left, 34px);
        }
      }
      
      @supports (top: constant(safe-area-inset-top)) {
        :root {
          --safe-area-inset-constant-top: constant(safe-area-inset-top);
          --safe-area-inset-constant-right: constant(safe-area-inset-right);
          --safe-area-inset-constant-bottom: constant(safe-area-inset-bottom);
          --safe-area-inset-constant-left: constant(safe-area-inset-left);
        }
      }

      首先設(shè)置 css 根屬性變量值,如果是 less,通過(guò) calc 計(jì)算出增加劉海屏高度后的值,注意 calc 計(jì)算不支持不帶單位的數(shù)字相加,會(huì)導(dǎo)致結(jié)果為 0 ,所以一定要處理不帶單位的場(chǎng)景。

      由于安卓不支持 constant css 函數(shù),以及安卓 9 以下低版本系統(tǒng)不支持 env css 函數(shù),會(huì)導(dǎo)致獲取的結(jié)果為 0 從而導(dǎo)致 calc 計(jì)算結(jié)果也為 0 ,所以要在初始化寫(xiě)為 0px,則通過(guò) css  @supports 來(lái)判斷支持 constant 和 env 函數(shù)的情況下再賦值劉海屏高度值。

      js 通過(guò)與iOS 和安卓的接口獲取到客戶端返回的實(shí)際劉海屏的高度,當(dāng)返回的高度存在時(shí),則重新賦值 root 跟元素的變量,否則用瀏覽器默認(rèn)的。

      這樣實(shí)現(xiàn)的目的是為了解決部分機(jī)型下,env 函數(shù)和 constant 函數(shù)都獲取失敗導(dǎo)致無(wú)法處理劉海屏高度的場(chǎng)景。

      js vue3 代碼

      import { readonly, reactive, watch, ref } from 'vue'
      import { setRootProperty } from '@/common/util'
      
      export default {
        install: (app) => {
          const config = reactive({})
      
          const insets = ref({ top: 0, left: 0, bottom: 0, right: 0 })
          if (window.getSafeAreaInsets && typeof window.getSafeAreaInsets === 'function') {
            insets.value = window.getSafeAreaInsets() // 初始化獲取劉海屏值
          }
          const setConfigAreaInsets = () => {
            config.areaInsets = insets.value
          }
          const updateInsets = (top, left, bottom, right) => {
            insets.value = { top, left, bottom, right }
          }
      
          function applySafeInsets() {
            if (!window.EVENTS.safeAreaInsetsChange) {
              return false
            }
            setConfigAreaInsets()
            ;['top', 'right', 'bottom', 'left'].forEach(prop => {
              setRootProperty(`--safe-area-inset-${prop}`, `${insets.value[prop]}px`)
              setRootProperty(`--safe-area-inset-constant-${prop}`, `${insets.value[prop]}px`)
            })
          }
          watch(insets, (val) => {
            applySafeInsets()
          })
          app.mixin({
            mounted() {
              applySafeInsets()
              if (this === this.$root) {
                window.mraid.addEventListener('safeAreaInsetsChange', updateInsets)
              }
            },
            beforeUnmount() {
              if (this === this.$root) {
                window.mraid.removeEventListener('safeAreaInsetsChange', updateInsets)
              }
            }
          })
      
          app.config.globalProperties.$config = config
          app.provide('config', readonly(config))
        }
      }

       

      posted @ 2024-11-27 15:40  蓓蕾心晴  閱讀(195)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲综合日韩av在线| 潮喷失禁大喷水无码| 国产老熟女一区二区三区| 亚洲国产精品一区第二页| 国产精品国色综合久久| 亚洲成人精品一区二区中| 国产精品久久露脸蜜臀| 暖暖免费观看电视在线高清| 内丘县| 久久精品无码一区二区三区| 亚洲各类熟女们中文字幕| 国产 另类 在线 欧美日韩| 玉田县| 视频区 国产 图片区 小说区| 扒开双腿猛进入喷水高潮叫声| 日本又色又爽又黄的a片吻戏| 国产白丝jk捆绑束缚调教视频| 少妇人妻互换不带套| 国产精品99久久不卡| 国产自拍一区二区三区在线| 久热这里只有精品12| 亚洲国产日韩a在线播放| 日韩精品一区二区三区激情视频| 一区二区和激情视频| 炉霍县| 久久精品国产色蜜蜜麻豆| 亚洲精品一区二区在线播| 国产91特黄特色A级毛片| 四虎库影成人在线播放| 精品国产乱码久久久久APP下载| 成人又黄又爽又色的视频| 国产一区二区三四区| 亚洲日本韩国欧美云霸高清| 少妇人妻偷人精品无码视频| 无线乱码一二三区免费看| 安陆市| 亚洲中文字幕久久精品品| 各种少妇wbb撒尿| 国产色婷婷精品综合在线| 久久亚洲国产品一区二区| 国产最新精品系列第三页|