项目中经常用到金额的输入框,会用到el-input标签
但是这个标签的上下箭头很丑 在app.less,全局样式中加此代码可以去掉。
/* input number类型取消增减箭头*/
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
去掉这个输入框的鼠标滚动就增减数字的默认事件 2种写法
第一种:
标签上面增加 @mousewheel.native.prevent,如下:
<el-input v-model="row.checkMoney" @mousewheel.native.prevent type="number"></el-input>
这种方法需要用到的地方批量修改,比较麻烦。
第二种,
可以通过在Vue实例中添加一个全局事件监听器来实现。app.vue中代码如下:
// 取消el-input的type=number的 默认事件
const handleWheel = (event) => {
const target = event.target;
// 找到el-input的type=number的输入框
if (target.tagName === 'INPUT' && target.type === 'number') {
// 去掉默认的滚轮事件
event.preventDefault();
}
};
onBeforeUnmount(() => {
// 在这里执行清理操作
document.removeEventListener('wheel', handleWheel);
});
onMounted(() => {
document.addEventListener('wheel', handleWheel, { passive: false });
});