zoukankan      html  css  js  c++  java
  • ios系统设置-webkit-overflow-scrolling: touch导致z-index 失效 (弹窗层级设置无效)- 替代方案

    最近开发移动端,模拟和安卓系统都比较正常,但是一遇到ios系统就各种问题【真难】

    前言、背景:

    首先是因为设置滚动条ios系统出现卡顿,所以会加-webkit-overflow-scrolling: touch 来解决这个问题

    今天遇到的问题是小的弹窗被遮住了,也就是层级不够,z-index失效。

    查了一下资料排除了 z-index “从父原则”导致的问题【父元素没有设置z-index】

    页面内容点击弹窗效果图【这里弹出的ios实机测试是被黑布遮住的,安卓正常】【左侧正常效果】【右侧图就是bug效果】

    测试发现是page页面设置了-webkit-overflow-scrolling: touch 导致的【页面有滚动条】

    针对上面的问题,解决方案:

    第一种:直接去掉-webkit-overflow-scrolling: touch 【不合理,因为页面卡顿了】

    第二种:把小弹窗放到根下面,也就是跟遮布平级【因为放到根下面就不存在父级含有-webkit-overflow-scrolling】

    第三种:动态修改-webkit-overflow-scrolling 样式内容值。【我选择解决的方式】

    【我是vue项目】

    首选给page的div设置ref= receivable

           

    page页面样式保持-webkit-overflow-scrolling: touch; 【因为初始化是没有弹窗,页面要正常显示且不卡顿】

           

    当点击弹窗时设置【在点击事件方法里调用下面的函数】:

    isTure代表一个参数,true表示点击打开,false表示关闭

       

    【思想】:动态设置webkit-overflow-scrolling样式,如果点击了弹窗,页面都被遮住了,卡不卡都没关系,所以设置auto,这时z-index有效,弹窗可以操作。

    当关闭弹窗时,设置成touch,页面滑动是正常不卡顿效果。

     如果你有更好的方式,欢迎留言一起学习~~^ . ^

  • 相关阅读:
    1.Oracle实例和Oracle数据库(Oracle体系结构)
    04.SQL基础-->分组与分组函数
    SYSAUX表空间满的解决方法
    Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
    Python学习-八周五次课(12月15日)
    ELK安装
    Python学习-八周二次课(12月12日)
    Python学习-八周一次课(12月11日)
    Python学习——七周四次课(12月7日)
    Python学习-复习7次课(12月4日)
  • 原文地址:https://www.cnblogs.com/yflbk-2016/p/12875163.html
Copyright © 2011-2022 走看看