1080*1920分辨率触摸屏设备中,使用元素定位后iframe中的内容无法点击的问题

88 阅读1分钟

1080*1920分辨率触摸屏设备中,使用元素定位后iframe中的内容无法点击的问题

需求,点击内容后跳转到外部页面。

1.方法很简单,就是设置链接跳转,这是最简单的需求实现。

window.location.href = 'https://xxx.com';

2.但是实际项目中,如果你直接通过链接跳转,那很有可能就不能返回自己原本的项目了,这显然不是很合理。但是又不能直接在外部页面中加入返回按钮。这个时候就需要用到iframe了。

<button>返回</button>
<iframe ref="frame" class="iframe" :src="src"></iframe>

3.在使用iframe后,却又会遇到了新的问题,那就是--对按钮使用定位后,iframe中的内容不能点击了!我心想,不对啊,这怎么可能呢?于是我仔细观看源码,逐个排查元素,终于发现了其中的奥秘!我发现,我要点的按钮好像位置有点‘偏’了?!而且是那种偏到屏幕之外的偏。

4.知道了原因,那就好解决了。我把原本为40%的缩放调为正常触摸屏显示的100%,此时按钮和iframe中的点击事件都没有问题。成功解决!

5.总结:浏览器的仿真设备有时为了开发者调试方便,会自动缩放网页内容,如果我们要开发的内容分辨率过高,在自动缩放的条件下,我们的点击元素有可能并不在我们看似的地方,实际上已经‘漂移’走了。这时只要把缩放调为100%,就能测试出来我们实际想要的效果了。