vue开发移动端app苹果手机的bug脱坑

vue开发移动端app苹果手机的bug脱坑vue 开发移动端 app 网页打包苹果 app 的坑总结列表设置 overflow auto 后 滚动效果不流畅的问题 可以在列表设置 flex 1 overflow y auto webkit overflow scrolling touch 在 iOS 中出现滚动卡顿问题上诉解决方法还会出现一个问题 就是会导致在列表中如果有弹窗 position fixed 会导致弹窗被覆盖或者覆盖不完全的问题 为此需要将弹窗放在列表外 下面为代码例子

vue开发移动端app 网页打包 苹果app的坑总结

  • 列表设置overflow:auto 后,滚动效果不流畅的问题
//可以在列表设置 flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; //在iOS中出现滚动卡顿问题 
  • 上诉解决方法还会出现一个问题,就是会导致在列表中如果有弹窗(position: fixed)会导致弹窗被覆盖或者覆盖不完全的问题,为此需要将弹窗放在列表外,下面为代码例子:
 <div class="quotation-easy-list list-padding flex flex-column"> <div class="scroll-container"> <div v-for="(item, index) in easyList" :key="item.id" class="quotation-easy-out-item" @click="slectRemove(item, index)"> <div class="flex quotation-easy-item" @click="actionSheetListShow(item)" :class="preRemove ? 'pre-remove' : 'pre-remove-no-padding'"> <div class="select" v-show="item.is_remove && preRemove" :class="item.removed ? 'active': ''"> <i class="iconfont icon-dagou" v-show="item.removed"></i> </div> <span class="bold middle-font-size">{ 
  {item.name}}</span> <span v-show="!preRemove" class="bold middle-font-size" :class="item.down === 0 ? '': (item.down === 1 ? 'up-price': 'down-price')" >{ 
  {item.price}}</span> <span v-show="!preRemove" class="bold middle-font-size" :class="item.downSecond === 0 ? '': (item.downSecond === 1 ? 'up-price': 'down-price')" >{ 
  {item.point_price}}</span> </div> </div> </div> <!--这个组件是弹窗 类名为scroll-container的div是列表 存在-webkit-overflow-scrolling: touch属性 弹窗需要放在他的外面才不会被覆盖--> <action-sheet-list @emitAction="emitAction" :actionDescription="actionDescription" ref="ActionSheetList" :actionList="actionList"></action-sheet-list> </div> 
  • 苹果底部会有一个黑色的小滑块,会导致底部导航栏被覆盖的问题,需要使用苹果的安全距离属性
    首先需要在html头部加上
<!-- viewport-fit=cover 为了解决ios安全距离 --> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,maximum-scale=1,user-scalabel=0,viewport-fit=cover"> 

然后:在需要进行padding-bottom 或者 bottom 或者 margin-bottom处加上(padding-top top margin-top left right xxxxxx 等属性类似 只需要改safe-area-inset-xxxxx 就行了)

 // bottom: env(safe-area-inset-bottom); //苹果底部安全距离 // bottom: constant(safe-area-inset-bottom); //苹果安全距离 //padding-bottom: env(safe-area-inset-bottom); //苹果底部安全距离 //padding-bottom: constant(safe-area-inset-bottom); //苹果安全距离 <!--这个属性会导致padding-bottom 被覆盖, 在安卓上无效果 如果需要在安卓上默认有一个padding-bottom 需要再套一层div 加padding-bottom 或者其他解决办法--> 
  • 这两行代码可以判断是否为ios终端
var u = navigator.userAgent; var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 
  • 采用flex布局(即 body,html设置宽高100%, #app设置高度100%, 底部导航栏高度自适应, 内容(router-view)设置 flex:1 overflow: auto )进行整个app的架构开发的话,会导致苹果的*橡皮筋效果*越加明显,经过各种解决办法 目前只能先有一种办法 暂时解决(有小bug):
body,
html {
  width: 100%;
  height: 100%;

}
//只能给body设置fixed属性缓解橡皮筋效果
body {
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
}

#app {
  height: 100%;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232141.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月30日 上午10:01
下一篇 2025年10月30日 上午10:22


相关推荐

  • linux内核 5.0,Linux Kernel 5.0 正式发布,FreeSync支持[通俗易懂]

    linux内核 5.0,Linux Kernel 5.0 正式发布,FreeSync支持[通俗易懂]LinusTorvalds已经取得了进展,刚刚发布了Linux5.0稳定内核,最初是作为Linux4.21内核周期提供主线AMDRadeonFreeSync支持,持续开发英特尔Icelake和其他新CPU功能,罗技高分辨率滚动功能,网络改进等等。在今天的LinuxKernel5.0版本中,创建者LinusTorvalds评论道,“LinuxKernel5.0发布的最后一周并不完…

    2022年5月30日
    40
  • vba 编程学习

    vba 编程学习最近公司管理人员需要给excle文章加入许多自动化功能,要求个人学习vba编程,经过几天学习总结了一下:1.打开Microsoftvisualbase界面      (1)在Excle选项中选择”开发工具选项“加入显示编辑窗口按钮  (2) 快捷键如下:Alt+F11

    2022年5月18日
    55
  • mybatis中insert语句动态sql篇「建议收藏」

    mybatis中insert语句动态sql篇「建议收藏」在mybatis中如何把insert语句改成动态入参;原SQL语句如下:&amp;lt;!–插入user方法一–&amp;gt;&amp;lt;insertid=&quot;addUser&quot;parameterType=&quot;user&quot;&amp;gt;insertintosmbms_user(userCode,userName,userPassword,gender,addres

    2022年6月23日
    266
  • STM32+MFRC522完成IC卡号读取、密码修改、数据读写

    一、环境介绍MCU:STM32F103ZET6开发软件:Keil5非接触式读写卡模块:MFRC522完整工程源码下载:https://download.csdn.net/download/xiaolong1126626497/18905806二、功能介绍使用MFRC522模块完成对IC卡卡号读取、卡类型区分、IC卡扇区密码修改、扇区数据读写等功能;底层采用SPI模拟时序,可以很方便的移植到其他设备,完成项目开发。现在很多嵌入式方向的毕业设计经常使用到该模块,比如:校园…

    2022年4月8日
    64
  • 如何定制zencart模板「建议收藏」

    如何定制zencart模板「建议收藏」很多用户对zencart做了自己的修改,非常好!但同时,一些用户修改了很多重要的文件,例如:/includes/filenames.php/includes/languages/schinese.php/includes/languages/schinese/*.php等等…友情提示:如果你希望以后的升级更容易,不要修改这些文件!ZenCart的文件替代机制的功

    2022年7月27日
    9
  • html如何设置有序列表的列表项,HTML的有序列表

    html如何设置有序列表的列表项,HTML的有序列表针对HTML的有序列表,由于平常使用的不是很多,刚开始使用的时候也是有遇到一些坑,有几个小问题:1.li的宽度不能设置为100%,这样的话就没办法看到前面的序号2.如果设置li的颜色字体大小,前面的序号会跟着变化,但是给Li设置背景颜色,需要是不会有背景色的3.序号的所占空间约在两个字符之间,但是又不算在Li空间里面,所以在写css样式的时候可能要注意好有序列表有几种项目1项目2项目3第一个typ…

    2022年6月16日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号