美文网首页
阻止鼠标滚动改变input(type=number)的值事件

阻止鼠标滚动改变input(type=number)的值事件

作者: 紫衣_紫翼 | 来源:发表于2020-11-05 11:40 被阅读0次

    一直被这个问题困扰,网上找的很多阻止鼠标滚轮事件的方法,但是都不合适,不仅阻止了滚轮改变数值,也阻止了表单的滚动,用户体验很不好。今天发现一个大神(@九段刀客)的vue自定义指令实现阻止鼠标滚轮改变type="number"时的数值,终于解决了这个问题,在这里记录一下。

    一、自定义指令
    import Vue from 'vue'
    // 阻止type="number"鼠标滚动改变数值
    Vue.directive( 'stopNumberMousewheel', {
      inserted: function ( el ) {
        const ele = el.tagName === 'INPUT' ? el : el.querySelector( 'input' )
        ele.addEventListener( "mousewheel", () => {
         ele.blur();
        } )
      }
    } )
    
    二、main.js中全局引入
    // 阻止数字输入鼠标滚轮改变数值
    import "@/directive/stopNumberMousewheel";
    
    三、使用
    <el-input v-model="test" v-stopNumberMousewheel type="number"></el-input>
    

    相关文章

      网友评论

          本文标题:阻止鼠标滚动改变input(type=number)的值事件

          本文链接:https://www.haomeiwen.com/subject/otmovktx.html