input[type=“number“]鼠标滚动时值跟着改变

这篇具有很好参考价值的文章主要介绍了input[type=“number“]鼠标滚动时值跟着改变。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原因:table里面嵌入input[type="number"]输入框,鼠标滚动时值跟着改变

input[type=“number“]鼠标滚动时值跟着改变

需求:鼠标滚动时,不改变input值,只页面滚动

思路:

* 1.监听mousewheel事件;

* 2.获取input输入框元素;

* 3.当监听到鼠标滚动事件时,设置input元素失去光标

使用:

*(1)在DOM上加上v-stopMousewheel即可

        <el-input type="number" v-stopMousewheel><el-input>

* (2)也可在DOM上绑定@mousewheel.prevent;@DOMMouseScroll.prevent来阻止type="number"鼠标滚动改变数值

缺点:当input获取光标时,鼠标滚动,整个页面时不滚动的,只有input失去光标之后页面才会滚动;当页面内容多,出现滚动条时,用户体验不好

页面:

<template>
    <el-table :data="tableData" style="width: 100%">
        <el-table-column prop="date" label="Date" width="180" />
        <el-table-column prop="name" label="Name" width="180" />
        <el-table-column label="Price" width="180">
            <template #price="scope">
                <el-input-number v-model="scope.row.price" v-stopMousewheel ></el-input-number>
            </template>
        </el-table-column>
        <el-table-column prop="address" label="Address" />
    </el-table>
</template>

ts:

<script lang="ts" setup>
const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    price: 10,
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    price: 10,
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    price: 5,
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    price: 9,
    address: 'No. 189, Grove St, Los Angeles',
  },
]
</script>

注册全局自定义指令:文章来源地址https://www.toymoban.com/news/detail-510176.html

import type {Directive} from 'vue';
const stopMousewheel:Directive = {
    updated:function (el:HTMLElement) {
        el.addEventListener('mousewheel',() => {
            const elem:any = el.tagName === 'INPUT' ? el : el.querySelector('input');
            elem.blur();
        })
    }
};
export default stopMousewheel;

到了这里,关于input[type=“number“]鼠标滚动时值跟着改变的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决使用element ui时el-input的属性type=number,仍然可以输入e的问题。

    使用element ui时el-input的属性type=number,仍然可以输入e, 其他的中文特殊字符都不可以输入,但是只有e是可以输入的,原因是e也输入作为科学计数法的时候,e是可以被判定为数字的, 但是有些场景是需要把e这种情况屏蔽掉的,我们可以使用如下的方法。 在进行键盘事件输入

    2024年02月08日
    浏览(46)
  • VSCode---通过ctrl+鼠标滚动改变字体大小

    打开设置 然后在右边输 editor.mouseWheelZoo 勾选即可实现鼠标滚动改变字体大小 4.这种设置的字体大小是固定的

    2024年02月14日
    浏览(64)
  • Cesium修改原始鼠标视图操作, 右键按住改变视角, 滚轮滚动进行zoom改变

    主要使用API为 screenSpaceCameraController

    2024年02月13日
    浏览(43)
  • 跟着cherno手搓游戏引擎【7】Input轮询

    在引擎程序中任何时间,任何位置都能知道按键是否按下、鼠标的位置等等信息。 与事件系统的区别:事件系统是在按下时调用并传递按键状态;轮询是每时每刻都能获取按键状态 YOTO/Input.h:名如其意  在Platform/Windows/下创建WindowsInput.h: WindowsInput.cpp:获取window然后用glfw自

    2024年01月17日
    浏览(39)
  • 用js实现元素跟着鼠标转动效果

     当鼠标移入body时,元素跟着鼠标旋转,所有的元素都看向鼠标的位置。 在一个shell中,总共有 36 个item。 这里对shell盒子采用css3的网格布局,对它的子元素进行分成6行6列的形式,宽和高都为50px, 然后利用双伪元素来画它的小眼睛。 然后每个小方块都化成这个样子。 原理:

    2024年02月09日
    浏览(44)
  • el-input-number 参数及各种情况

    ·参数说明 ·效果图

    2024年02月12日
    浏览(47)
  • 设置输入框el-input图标 / el-input表单只显示number

    第一种方法说明: prefix-icon图标位置在前面 suffix-icon图标位置在后面 el-icon-search 搜索小图标 el-icon-date 日期小图标 第二种方式是通过slot来插入 PS:

    2024年02月16日
    浏览(45)
  • el-input-number 失去焦点blur事件,

            最近遇到了个奇怪的需求,需要代码手动给数字输入框手动触发失焦事件;但是在看了 el-input-number 焦点事件部分的源码后,发现 el-input-number 只有获取焦点focus事件,却没有失去焦点的事件: 后来再阅读了 el-input-number的 template部分的源码后;发现el-input-number封装

    2024年02月13日
    浏览(44)
  • Element 修改el-input-number计数器对齐方式

    在style里面添加以下代码,修改el-input-number左对齐: 取消左右两边的控制按钮,设置controls属性为false:

    2024年02月12日
    浏览(47)
  • 跟着cherno手搓游戏引擎【8】按键和鼠标的KeyCode

    先把glfw3.h里的KeyCode的定义抄到咱这里来。 在YOTO下创建KeyCode.h:  MouseButtonCodes.h:和KeyCode.h一样作用,把GLFW改成自己的 YOTO.h: SandboxApp.cpp:在ExampleLayer测试轮询和KeyCode  明日继续更新数学和ImGui停靠和视口

    2024年01月18日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包