首页 > 其他分享 >H5页面在ios手机滑动卡顿问题

H5页面在ios手机滑动卡顿问题

时间:2022-11-23 11:24:21浏览次数:69  
标签:ios 100% List H5 Item overflow 卡顿 页面

业务需求场景

在我们开发中,H5页面多多少少会在外部打开,比如微信,钉钉,那么就会存在一些意想不到的bug!此次主要针对移动端H5页面在iOS端产生的 橡皮回弹(橡皮筋效果)造成滑动卡顿问题做一下相关记录,希望对遇到类似问题的同学有所帮助。

方案一:使用 inobounce.js

在 html主页面 的 header 标签中引入 inbounce.js,即  。当引入此文件之后,iOS端整个页面都无法滑动或滚动,若想滚动的元素能够实现滚动效果,则需要对滚动区域设置固定的高度,即 height、max-height,同时也要设置 overflow: auto,实现页面滑动。为防止iOS端页面滚动发生卡顿现象,需要对滚动区域设置 -webkit-overflow-scrolling: touch 属性。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>inobounce</title>
<script src="inobounce.js"></script>
<style>
ul {
    height: 115px;
    border: 1px solid gray;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}
</style>
</head>
<body>
    <ul>
	<li>List Item 1</li>
        <li>List Item 2</li>
        <li>List Item 3</li>
        <li>List Item 4</li>
        <li>List Item 5</li>
        <li>List Item 6</li>
        <li>List Item 7</li>
        <li>List Item 8</li>
        <li>List Item 9</li>
        <li>List Item 10</li>
    </ul>
</body>
</html>

别着急,请看方案二!

方案二:CSS样式处理

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>iOS橡皮回弹</title>
</head>
<body>
    <!-- 内容区 -->
    <div id="app"></div>
</body>
</html>

主要css代码:

/* 初始化 */
* {
    margin: 0;
    padding: 0;
}
/* 基本样式 */
html,
body {
    width: 100%;
    height: 100%;
    overflow: hidden;
}
body {
    box-sizing: border-box;
    position: relative;
}
/* 超出滚动 */
#app {
    width: 100%;
    height: 100%;
    overflow-y: auto;
}

方案三:meta标签设置 + css(推荐)

在你项目index.html中设置如下:

<meta content="yes" name="apple-mobile-web-app-capable" />
<meta content="yes" name="apple-touch-fullscreen" />
<style>
  html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    overflow: hidden;
  }
</style>

总结

总的来说,三种方案我在实际开发中都进行了尝试。方案一在微信中浏览H5网页时可以完美解决橡皮回弹效果;当H5页面在iOS端微信授权跳转时,底部会有一个导航条,此时导航条也有可能被遮盖,点击导航条两端的按钮没有反应。在Safari浏览器打开H5页面时,网页的顶端地址栏和底部菜单栏会有一定的遮挡,体验效果不是很理想,最终此方案被pass掉了。方案二是我实际工作中使用的,回弹效果得到了一定的改善。体验效果较方案一有了很大的提升。方案三个人觉得最简单直接,我的问题是通过该方案解决的。

标签:ios,100%,List,H5,Item,overflow,卡顿,页面
From: https://www.cnblogs.com/wentai/p/16917661.html

相关文章

  • h5活动九宫格转盘-vue
    实现的效果操作步骤首先安装插件#npm安装npminstall@lucky-canvas/vue@latest#或者yarn安装yarnadd@lucky-canvas/vue@latest在main.js中引入//......
  • h5判断手机摇晃
    代码如下:varcount=0;functionshakeFun(){//判断手机摇晃if(window.DeviceMotionEvent){varspeed=10;varx=y=z=lastX=lastY=......
  • 百度地图添加大量标记点卡顿解决思路
    百度地图加载大量mark点的一种思路需求即能加载多个点,又能加载海量点,又能工具条件经常切换,在尝试了多种方式之后,用下面的方式满足了条件思路:先通过setTimeout分布加载......
  • H5 富文本快捷输入
    ✍记录一下功能富文本功能快捷键关键词效果......
  • Andorid/iOS完美替代的开源操作系统?
    开源移动操作系统列表,包括UbuntuTouch和PureOS等选项https://linux.cn/article-14047-1.htmlhttps://itsfoss.com/open-source-alternatives-android/1.PlasmaMob......
  • vue2 axios11 await async 解构赋值 原生axios发起网络请求
    axios:专注发起网络请求的库get传参要params,post传参用data,具体传参看后端怎么写,后端乱写就套麻袋打一顿   post请求简化版:不用await和async时是一个prom......
  • iOS app 上架 App Store
    ​ 一、证书的导出    1.1前期工作      首先你需要有一个苹果的开发者帐号,一个Mac系统。      如果没有帐号可以在打开         其中......
  • iOS app 上架 App Store
      一、证书的导出    1.1前期工作      首先你需要有一个苹果的开发者帐号,一个Mac系统。      如果没有帐号可以在打开         ......
  • 瓴羊Quick BI大数据分析工具,通过加速引擎成功解决海量数据分析卡顿
    大数据分析,无疑是当下社会最热的焦点话题之一。权威研究机构Gartner对于大数据给出了这样的定义:“大数据”是需要新处理模式才能有效应对的海量、高增长率和多样化的数据资......
  • iOS原生接入Flutter
    官方文档:https://flutter.cn/docs/development/add-to-app/ios/project-setup原生的oc写的代码,新的需求页面想要用flutter来写,那么如何在原生项目里加入flutter呢?1、新建......