IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 移动端使用iframe嵌套页面 scrolling:auto,ios出现横向滚动条问题 -> 正文阅读

[移动开发]移动端使用iframe嵌套页面 scrolling:auto,ios出现横向滚动条问题

移动端使用iframe嵌套页面 scrolling:auto,ios出现横向滚动条问题

一、业务需求/及问题点

	业务需求:开发移动端项目时,在项目网页内引用第三方网页,为此采用<iframe src=''>标签引入第三方网页
问题一:如何让iframe嵌套页面出现滚动条?
	当使用<iframe src='htttps://xxx.com'> 引入第三方页面,此时页面无法出现上下滚动条,
	解决思路:需要引入iframe标签的scrolling属性:<iframe src='htttps://xxx.com' scrolling="auto">  
	( scrolling属性可取值'yes'、'auto')既能出现上下滚动条。

解决方法:

<iframe src="https://www.xxxx.com" frameborder="0" scrolling="auto"></iframe>
问题二:scrolling取值auto,ios设备嵌套的页面出现横向滚动条?
	当scrolling="auto"或scrolling="yes"时,ios出现横向滚动条,且引入的页面无法自适应移动端屏幕
大小,在浏览器和安卓设备显示正常,ios设备上却出现横向滚动条且页面无法自使用屏幕大小。
	解决思路: 在ios设备上scrolling取值no,通过html结构加css样式来实现上下滚动条。

解决方法:

<!-- html结构 -->
<div class="external-links">
    <iframe
      src="https://www.xxxx.com"
      frameborder="0"
      scrolling="no"></iframe>
  </div>
// css样式
.external-links{
    display: flex;
    height: 100%;
    flex-direction: column;
    -webkit-overflow-scrolling: touch;
    overflow-y: scroll;
    :deep()iframe {
      height: 100%;
      overflow: scroll; 
      -webkit-overflow-scrolling: touch; 
      min-width: 100%; 
      width:1px;
    }
  }
问题三:如何适配Android和IOS设备?
	当scrolling取值no,安卓设备不能上下滚动,且通过设置样式也无法实现上下滚动
	解决思路:前端通过获取用户设备信息进行判断是Android还是IOS, 为scrolling取值。

解决方法:

<!-- 根据机型为scrolling进行取值 -->
<div class="external-links">
    <iframe
      src="https://www.xxxx.com"
      frameborder="0"
      :scrolling="isIOS"></iframe>
  </div>
const isIOS = ref<string>()
onMounted(() => {
      const model = navigator.userAgent
      const isiOS = !!model.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // IOS机型
      const isAndroid = model.indexOf('Android') > -1 || model.indexOf('Adr') > -1 // Android机型
      if (isiOS) {
        isIOS.value = 'no' // ios iframe标签scrolling取值auto会出现横向滚动条,取值no手动添加css样式出现滚动条
      }
      if (isAndroid) {
        isIOS.value = 'auto' // Android iframe标签scrolling取值no不可以上下滚动,取值auto实现上下滚动条
      }
    })

两年的前端菜鸟, 如有理解不对的地方还恳请各位大佬给予指正, 谢谢!!!

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:07:14  更:2022-01-12 00:09:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:41:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码