如何防止 Flutter Web 中的 CTRL 和滚轮/触控板缩放?
How do I prevent CTRL & Scroll Wheel / Trackpad Zooming in Flutter Web?
问题
如果我在 Chrome (Windows) 中使用 CTRL + 滚轮或捏合来缩放我的触控板,我会看到这种奇怪的行为:
Flutter 网络应用程序在调整大小的同时留下了瑕疵。
用例
如果我想覆盖滚动以放大/触控板缩放行为,以便在我的 Flutter 网络应用程序中使用它来放大 canvas,例如,这会阻止我这样做。 Flutter 不会阻止这种默认行为,即使我对缩放手势做出反应也是如此。
那么我该如何防止这种情况发生呢?
这可以简单地使用 HTML DOM JavaScript:
来阻止
// This prevents zooming in using CTRL + mouse wheel.
// See
document.addEventListener('wheel', function(e) {
e.ctrlKey && e.preventDefault();
}, {
passive: false,
});
只需将此添加到您的 Flutter 网络应用 index.html
文件的 <body>
标签中:
<script>
// This prevents zooming in using CTRL + mouse wheel.
// See
document.addEventListener('wheel', function(e) {
e.ctrlKey && e.preventDefault();
}, {
passive: false,
});
</script>
问题
如果我在 Chrome (Windows) 中使用 CTRL + 滚轮或捏合来缩放我的触控板,我会看到这种奇怪的行为:
Flutter 网络应用程序在调整大小的同时留下了瑕疵。
用例
如果我想覆盖滚动以放大/触控板缩放行为,以便在我的 Flutter 网络应用程序中使用它来放大 canvas,例如,这会阻止我这样做。 Flutter 不会阻止这种默认行为,即使我对缩放手势做出反应也是如此。
那么我该如何防止这种情况发生呢?
这可以简单地使用 HTML DOM JavaScript:
来阻止// This prevents zooming in using CTRL + mouse wheel.
// See
document.addEventListener('wheel', function(e) {
e.ctrlKey && e.preventDefault();
}, {
passive: false,
});
只需将此添加到您的 Flutter 网络应用 index.html
文件的 <body>
标签中:
<script>
// This prevents zooming in using CTRL + mouse wheel.
// See
document.addEventListener('wheel', function(e) {
e.ctrlKey && e.preventDefault();
}, {
passive: false,
});
</script>