微信小程序适配iphoneX的实现方法

 更新时间:2018年09月18日 10:47:41   作者:哥哦狗子  
这篇文章主要介绍了微信小程序适配iphoneX的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一、 安全区域(safe area)

与iPhone6/6s/7/8相比,iPhone X 无论是在屏幕尺寸、分辨率、甚至是形状上都发生了较大的改变,下面以iPhone 8作为参照物,先看看iPhone X尺寸上的变化:

苹果对于 iPhone X 的设计布局意见如下:

核心内容应该处于 Safe area 确保不会被设备圆角(corners),传感器外壳(sensor housing,齐刘海) 以及底部的 Home Indicator 遮挡。也就是说 我们设计显示的内容应该尽可能的在安全区域内;

二、h5页面适配

1、viewport-fit的meta标签作为适配方案;viewport-fit的默认值是auto。

viewport-fit取值如下:

auto 默认:viewprot-fit:contain;页面内容显示在safe area内
  cover

viewport-fit:cover,页面内容充满屏幕

2、css constant()函数 与safe-area-inset-top & safe-area-inset-left & safe-area-inset-right & safe-area-inset-bottom的介绍.

当我们设置viewport-fit:contain,也就是默认的时候时;设置safe-area-inset-left, safe-area-inset-right, safe-area-inset-top和 safe-area-inset-bottom等参数时不起作用的。当我们设置viewport-fit:cover时:设置如下

body {

  padding-top: constant(safe-area-inset-top);  //为导航栏+状态栏的高度 88px      

  padding-left: constant(safe-area-inset-left);  //如果未竖屏时为0        

  padding-right: constant(safe-area-inset-right); //如果未竖屏时为0        

  padding-bottom: constant(safe-area-inset-bottom);//为底下圆弧的高度 34px    

} 

三、小程序适配

viewport-fit的适配方案不适合小程序。目前也没有看到小程序有对iPhone X等异形屏有特殊的接口或字段。小程序本身的底部tab栏对iPhone X的适配也只是简单的加了一个白色底栏,提高了原有tab栏的位置。我们只能通过 wx.getSystemInfo 接口取获取设备信息,该接口使用方法如下:

wx.getSystemInfo({

   success: function (res) {

      if (res.model == 'iphonrx') {

         this.setData({

            isIphoneX: true

         })

      }

   }

})  

其中 model 便是设备的型号等信息,如果 model 值为iphonerx ,便可认为该设备为iPhone X,我们在入口文件 app.js 中去进行检测,然后在全局增加一个 isIphoneX 字段。

wxml部分:

<view class="button-group {{isIphoneX ?'fix-iphonex-button':''}}">这是一个吸底按钮区域</view> 

wxss部分:

.fix-iphonex-button {
  bottom:68rpx!important;
}

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

至于为什么采用 68rpx,


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaScript实现的联动菜单特效示例

    JavaScript实现的联动菜单特效示例

    这篇文章主要介绍了JavaScript实现的联动菜单特效,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2019-07-07
  • AngularJs+Bootstrap实现漂亮的计算器

    AngularJs+Bootstrap实现漂亮的计算器

    这篇文章主要为大家详细介绍了angularJs+Bootstrap实现漂亮的计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 如何实现iframe父子传参通信

    如何实现iframe父子传参通信

    这篇文章主要介绍了如何实现iframe父子传参通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • JavaScrip实现一个有时间限制的缓存类的方式

    JavaScrip实现一个有时间限制的缓存类的方式

    本文将探索 JavaScript 中一种基于自动过期机制的时间限制缓存实现方式,提高数据缓存策略的灵活性和效率,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • JavaScript 九种跨域方式实现原理

    JavaScript 九种跨域方式实现原理

    这篇文章主要介绍了JavaScript 九种跨域方式实现原理,什么是跨域,以及有哪几种跨域方式,这是本文要探讨的内容。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • avalonjs制作响应式瀑布流特效

    avalonjs制作响应式瀑布流特效

    瀑布流主要应用在图片展示页面上。如果有一大批图片需要展示,原始图片尺寸不一致,又希望每张图片都能不剪裁,完整显示,那么就要给图片规定一个宽度,解放它们的高度。利用网页高度不限这个特性,充分利用页面的空间,尽可能的展示多的图片。下面我们就来详细探讨下
    2015-05-05
  • JavaScript事件监听器详细介绍

    JavaScript事件监听器详细介绍

    这篇文章主要介绍了JavaScript事件监听器详细介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • js动态添加onclick事件可传参数与不传参数

    js动态添加onclick事件可传参数与不传参数

    本节主要介绍了js动态添加onclick事件可传参数与不传参数,需要的朋友可以参考下
    2014-07-07
  • javascript将扁平的数据转为树形结构的高效率算法

    javascript将扁平的数据转为树形结构的高效率算法

    这篇文章主要介绍了javascript将扁平的数据转为树形结构的高效率算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • JavaScript获取数组最小值和最大值的方法

    JavaScript获取数组最小值和最大值的方法

    这篇文章主要介绍了JavaScript获取数组最小值和最大值的方法,涉及javascript中min与max方法的使用技巧,非常简单实用,需要的朋友可以参考下
    2015-06-06

最新评论