javascript - 如何阻止滚动事件通过 iframe 直到 iframe 处于活动状态?
问题描述
我有一个长滚动页面。在这个滚动页面上是一个 iframe,它有一个媒体应用程序,该应用程序具有在接收到滚动事件时放大和缩小的媒体。
如果用户使用鼠标滚轮滚动父页面,最终他们将点击 iframe,在这种情况下页面将停止滚动并且 iframe 将放大到媒体应用程序很远。
如果我禁用 iframe 的鼠标事件,则用户永远无法放大或单击媒体应用程序。
有没有办法阻止 iframe 上的默认滚动操作,并且只在 iframe 处于活动状态时发生?
解决方案
您可以使用以下步骤:
- 包裹你的
iframe
内部div
元素。您不能使用onclick
iframe 的方法。 - 在父元素上触发事件(单击、鼠标活动)时更改元素
pointer-events
的属性。iframe
div
这是 JQuery 示例:
$('#iframeContainer').on('click', function(event) {
$('#iframe').css('pointer-events', 'auto');
});
$('#iframeContainer').mouseleave(function(event) {
$('#iframe').css('pointer-events', 'none');
});
推荐阅读
- reactjs - sass 中未定义的变量
- android - 如何检测系统是否使用暗模式?
- java - 如何将 Retrofit POST 正文作为 JSON 字符串发送?
- c# - ProjectReference 未包含在打包的 nuget 中
- python - TFX Example_Gen Produce RuntimeError
- android - android.text.Layout 类是否与众所周知的“布局”(例如约束布局)相关联?它有什么用?
- javascript - Vuex:侧边栏不切换状态值
- ios - 操作表在 ipad ios 13.6 中不起作用
- c++ - QT - 使用 QSerialPort 写入和读取(ASCII 命令)
- objective-c - 如何从 NSTextField 设置静态 int