【发布时间】:2018-04-02 20:28:46
【问题描述】:
在 iOS 设备的 Fancybox iFrame(使用 javascript)中移动和显示 div 时,iframe 会滚动到窗口顶部,用户必须向下滚动才能看到 div。在非 iOS 设备中,div 被移动到视图中,而 iFrame 没有向上滚动(这是我想要的)。
https://embed.plnkr.co/MhUHCeAaN6VVsllmovTj/
重现步骤:
- 在 iPad 上使用 Safari 导航到上述网址
- 点按“打开花式盒子”
- 向下滚动并点击“点击我!”按钮
- 注意 iFrame 滚动到顶部。
该按钮创建一个 div,将其移动到被点击点的右上角,并使其可见。
我在以下时间确认了此行为:
iPad (iOS 11.2.6)
- 野生动物园
- 铬
- Mozilla 火狐
iPhone (iOS 11.2.6)
- 野生动物园
我确认此行为不会发生在:
Windows 10
- Safari (v 5.1.7)
- 铬
- Mozilla 火狐
Android (7.0)
- 铬
我已经尝试过此线程中提供的答案:fancybox2 / fancybox causes page to to jump to the top,但点击按钮后 iFrame 仍会向上滚动,然后锁定 iFrame,因此您无法向下滚动。
我还尝试在 onclick 函数完成后使用 jQuery 滚动到所需的 div(使用 id 选择),但 iFrame 没有移动。在此处使用“SLaks”建议:How do you scroll an iframe from within using jquery?
【问题讨论】:
-
我可以确认 iOS 很烂。请为 Safari 创建或投票支持相应的错误票。这与fancybox 无关,因为它只是为您创建一个标记。其余的取决于浏览器。
-
感谢您的回复。这就说得通了。我将在苹果网站上创建一个 bug 票。
标签: javascript jquery ios iframe fancybox