javascript - VueJS : prevent bouncing and zooming on IOS10+ with routing

标签 javascript ios vue.js vuejs2 vuetify.js

目前我正在开发与 Threejs 相关的 Vuejs 应用程序。稍后将显示 3D 模型。作为一个框架,我使用 vuejs 和 vuetify。我使用 vuejs 的路由器。

由于我想显示 3D 模型,因此不希望在浏览器中进行缩放。此外,必须停用智能手机上当今现代浏览器可以使用的所有手势,以避免意外重新加载页面等。我为此使用元标记:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

不幸的是,它在 IOS10+ 下不起作用。所以我使用了 InoBounce.js。此脚本应修复此行为。

这在起始页上效果很好,但在我通过按钮更改路线后的任何页面上都行不通。因此,当我单击一个按钮返回起始页时,该脚本不再在那里工作。这可能是因为创建者没有将其适配为与 vuejs 一起工作。

我已经尝试在更改路线时使用观察程序再次运行脚本。我稍微重写了脚本,这样它就不再想在全局范围内创建自己,而是包含一个导出的方法。然后我使用 Vuex 将其“全局”嵌入,然后在每次路由更改时运行它。它看起来像这样:

 watch: {
   $route(to, from) {
     this.$store.state.bounceFix.fixBounce();
  },
 },

浏览器中的调试器还指示在每次路由更改时调用该方法。但它仍然只在第一次加载时在主页上工作(好吧,因为我也在“挂载”区域调用它)。

所以....我真的是互联网上唯一想要防止与 vuejs 这样的框架相关的缩放的人吗?因为不幸的是我在互联网上找不到太多相关信息。

在与 vuejs 相关的 safari 中阻止缩放和弹跳的最佳方法是什么?

更新:

我忘记了一件重要的事情:

我还必须将以下行作为样式添加到我的标签中:

overflow: auto;
    -webkit-overflow-scrolling: touch;

这应该会阻止诸如“滑动以刷新”之类的手势。

最佳答案

你能试试这个吗?

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

关于javascript - VueJS : prevent bouncing and zooming on IOS10+ with routing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614797/

相关文章:

ios - 如何减少 GPUImageGaussianSelectiveBlurFilter 效果中的内存消耗?

iphone - JSON 解析未提供正确的 NSMutable 数组 :

objective-c - iOS:简单的 NSMutableArray 调用

vue.js - Action 分派(dispatch)到 Vuex 后如何将数据传递给组件?

javascript - Ember Data 的商店 promise 在五次测试中不起作用

JavaScript/Html - 更改 8 位小数后的字体大小/颜色

javascript - 重新排列元素顺序响应式设计

javascript - 处理未定义的ajax数据的替代方法

typescript - 如何在带有 Typescript 的 VueJs watch 中使用 Lodash debounce

javascript - 无法使用 crypto.createDecipheriv() 正确解密文件。文件大小为 0 字节