Vue 3 输入类型 "range" 鼠标拖动冻结显示 "not-allowed" 光标

Vue 3 input type "range" mouse drag freezes shows "not-allowed" cursor

v-model 用于绑定一个状态时,我在 Vue 3 中遇到一个带有 html <input type="range"> 元素的错误。

它不会一直发生,但在单击并拖动滑块输入后,最终会出现拖动范围滑块的手柄停止工作且鼠标光标变为“禁止”图标的时间类似于带有一条线的 cursor: not-allowed 圆圈。在 Windows 上使用 Chrome 10.

我已经能够在两个不同的 Vue 应用程序中重现它。一个使用选项 API,另一个使用组合 API.

示例代码:

//app.js
<template>
  <div id="app">
    <input type="range" v-model="range" />

    {{ range }}
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      range: "5",
    };
  },
};
</script>

有什么变通办法吗?解决方案?

编辑:

显然,它不一定非要在 Vue 中才能获得此行为。在下面的代码片段中,如果您在范围滑块周围的区域中单击并拖动鼠标几次,就可以观察到它 - 就好像要突出显示它一样,例如突出显示一行文本。在它变为“突出显示”后(虽然没有视觉指示)它不再可用,并且在尝试通过拖动设置新值时出现错误图标光标。

<input type="range">

进一步测试后发现这个错误与 vue 无关,而是存在于 Chrome.

中的所有 <input type="range"> html 元素上

我设计了一个解决方法来避免不良行为。

//app.js
<template>
  <div id="app">
    <input type="range" v-model="range" @mousedown="removeRanges" />

    {{ range }}
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      range: "5",
    };
  },
  methods: {
    removeRanges() {
      window.getSelection().removeAllRanges();
    },
  },
};
</script>