Javascript在移动设备上冻结正文(不允许任何滚动等)



有没有办法使框架的主体在移动设备上没有响应(意味着对任何触摸都没有响应)?

正在加载全屏 iframe,每次我触摸 iframe 中的某些内容时,iframe 后面的主体似乎都会受到影响。例如,正文开始滚动或被点击。

只有当我在 iframe 中使用 javascript 函数时,才会发生这种情况,就好像我在 iframe 中的函数会影响外面的主体一样。

我想防止我的 iframe 在视野中时身体受到影响。我能做什么?

发生这种情况是因为您的iframe它位于您网站的正文中。这实际上是意料之中的和正确的行为。

想象一下HTML的过度简化:

<body>
 <iframe />
</body>

如您所见,iframe 将位于 Body 内部,因此通过单击 iframe 中的任何内容,您将浏览正文。

如果您想避免意外行为,请尝试将事件侦听器添加到您的身体并使用 event.preventDefault() 。您可以使用滚动事件等来执行此操作。您可以阅读有关 preventDefault 和滚动的更多信息。这同样适用于要缓解的其他事件。

您还可以使用 CSS 禁用滚动:

使用 Jquery(来源):这将完全禁用滚动:

$('html, body').css({
    overflow: 'hidden',
    height: '100%'
});

要恢复:

$('html, body').css({
    overflow: 'auto',
    height: 'auto'
});

但是由于它是CSS,您可以简单地将overflow: 'hidden', height: '100%'添加到样式中,就可以了。

最新更新