首页 > web前端 > css教程 > 正文

如何使 iFrame 在 Mobile Safari 中可滚动?

Mary-Kate Olsen
发布: 2024-11-18 08:30:02
原创
107 人浏览过

How to Make iFrames Scrollable in Mobile Safari?

在 Mobile Safari 中显示 iFrame:完整指南

将 iFrame 合并到移动 Web 应用程序中可能是一项挑战,尤其是在旨在限制其尺寸。尽管设置了高度和宽度属性,iframe 可能仍然不受约束。

解决方案:

将 iframe 包含在 div 中以控制其尺寸。然而,这种方法在 iframe 中引入了滚动限制。

要克服这个问题,请实施以下策略:

  • JavaScript 集成: 在 iframe 中放置一个脚本内容。
  • 事件处理: 监听触摸事件iframe。
  • 父级通信:通过 JavaScript 通知父级 div 有关滚动事件。

示例代码:

iframe 的 JavaScript:

setTimeout(function () {
  var startY = 0;
  var startX = 0;
  var b = document.body;
  b.addEventListener('touchstart', function (event) {
    parent.window.scrollTo(0, 1);
    startY = event.targetTouches[0].pageY;
    startX = event.targetTouches[0].pageX;
  });
  b.addEventListener('touchmove', function (event) {
    event.preventDefault();
    var posy = event.targetTouches[0].pageY;
    var h = parent.document.getElementById("scroller");
    var sty = h.scrollTop;

    var posx = event.targetTouches[0].pageX;
    var stx = h.scrollLeft;
    h.scrollTop = sty - (posy - startY);
    h.scrollLeft = stx - (posx - startX);
    startY = posy;
    startX = posx;
  });
}, 1000);
登录后复制

父级的 HTML div:

<div>
登录后复制

注意:当 iframe 内容不受您控制时,您可以在 iframe 上创建覆盖层并实现类似的滚动功能。但是,与 iframe 内容的交互(例如单击链接)将受到限制。

其他注意事项:

  • 在 iOS 6 及更高版本中,此解决方案不适用工作时间更长,并且尚未发现可靠的替代方案。
  • 远程 Web 检查器(Safari 的调试工具)现在需要 Mac,这使得设备上调试更具挑战性。

以上是如何使 iFrame 在 Mobile Safari 中可滚动?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板