【发布时间】:2020-05-01 01:53:05
【问题描述】:
我们如何在 Safari iOS 13+ 移动版上禁用“双击缩放”?
有时会缩放,有时不会。我觉得它可能只适用于特定的 HTML 元素。
我读到 iOS 13 应该默认禁用“双击缩放”,并且只有双指缩放应该可以工作,但事实并非如此。
【问题讨论】:
我们如何在 Safari iOS 13+ 移动版上禁用“双击缩放”?
有时会缩放,有时不会。我觉得它可能只适用于特定的 HTML 元素。
我读到 iOS 13 应该默认禁用“双击缩放”,并且只有双指缩放应该可以工作,但事实并非如此。
【问题讨论】:
您可以添加以下元标记来停止在 ios 设备上进行缩放。
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=0"/>
一个 CSS 修复:
body{
touch-action: manipulation;
}
希望有帮助。
【讨论】:
当您只想在部分屏幕上禁用“双击缩放”时(在我的例子中,有一个图片库允许通过点击图库的右侧或左侧来转到下一张或上一张图片并且双击会中断用户体验),您可以在图像元素或其父元素上设置pointer-events: none,并将事件侦听器附加到图像库的根元素。
所以,给定以下 HTML:
<header>…</header>
<ul class="slideshow">
<li><img src="…" /></li>
…
</ul>
<footer></footer>
你会在 CSS 中执行以下操作:
.slideshow > * {
pointer-events: none;
}
并将事件侦听器附加到没有禁用其指针事件的.slideshow:
document.querySelector('.slideshow').addEventListener('click', (event) {
// detect what part of the screen was clicked and go to the next
// or previous slide
})
【讨论】: