
js技巧
zx&it
这个作者很懒,什么都没留下…
展开
-
前端实现电子签名
前端实现电子签名。转载 2022-12-16 13:48:30 · 187 阅读 · 0 评论 -
vue 系列 实现防抖节流 (防止暴力点击)
防抖节流原创 2022-12-08 13:16:46 · 3236 阅读 · 0 评论 -
el-input框输入数字千分位保留两位小数显示,传给后端转为正常数字。
el-input框输入数字千分位保留两位小数显示,传给后端转为正常数字。转载 2022-11-14 10:36:51 · 3782 阅读 · 1 评论 -
普通数组(元素之间有父子关系)转换树形数组的方法
普通数组(元素之间有父子关系)转换树形数组的方法。转载 2022-11-08 12:00:23 · 194 阅读 · 0 评论 -
input框限制输入数字,并限制输入小数后2两位。
思路:1、使用input输入事件;2、使用正则表达式结合replace替换输入的非数字。原创 2022-09-30 18:07:25 · 4731 阅读 · 0 评论 -
文本框/文本域,部分文字不可编辑(输入/删除等)。
重点是要用到键盘删除事件@keydown.delete,通过该事件拿到input的e.target。如果在不能删除的区间,则阻止删除的事件@keydown.delete。以上还是存在bug,当正常输入字符发现没得问题,但当使用输入法进行文字字符等输入的时候,还是能正常的输入,因此需要再使用两个事件:@onCompositionStart输入法输入开始事件和@compositionend输入法输入结束事件。因此还需要键盘按下事件@keydown,当定位在1-7个字符之间时,阻止事件触发。......原创 2022-08-09 16:40:41 · 4052 阅读 · 2 评论 -
前端纯css实现循环滚动展示数据,通过鼠标移入移出事件实现——鼠标移入暂停,移出继续滚动
主要是用到css的动画属性:animation , transform;vue的@mouseenter鼠标移入事件,@mouseleave鼠标移出事件。上代码:html: <div class="list_box"> <div id="scroll_box" ref="scroll_box" class="list anim" @mouseenter="stopAn" @mouseleave="leaveAn">原创 2022-05-25 16:23:33 · 3907 阅读 · 0 评论 -
el-table表格点击行实现行添加背景,再次点击取消背景。可以多次记录每次点击的行,且能实现有复选框的表格选中同时实现此功能。
需要用到elementui表格的 1,行样式添加的事件tableRowClassName ;2,行点击事件 rowClick;3,如果表格有复选框还需要用到复选框选择事件 select。直接干代码:1.页面组件***.vue<template> <div> <el-table :data="tableData" style="width: 100%" :row-key="getRowKey" :row-class-name="tableR.原创 2022-04-22 13:51:39 · 2338 阅读 · 0 评论 -
elementui树形表格数据量大时,会造成严重卡顿问题的解决方案
之所以会造成卡顿,是因为该组件是一次性将所有数据全部渲染,dom数量过于庞大,并且在展开树操作的时候,用了大量递归循环语句,性能受到严重影响,造成卡顿。我想到的解决方式有两种:一:分页,让后端添加分页查询,以节点数统计数据条数进行展示。(但实际需求中较少,一般树形表格都是不分页)。二:将请求到的树形数组数据备份(tableDataCopy),初始化仅仅展示指定层级(如第一层树)的数据,将第一层下面的所有的children全部置为null,并记录存在children的节点,设置hasChild..原创 2022-03-17 15:30:28 · 14615 阅读 · 0 评论 -
通过定义自定义指令v-dialogDrag,实现元素(弹框)拖拽移动。
1.创建dialogDrag.js文件,通过可见区域进行逻辑处理。代码如下:(可直接复制使用)import Vue from 'vue'; //引入vue// 指令v-dialogDrag: 弹窗拖拽Vue.directive('dialogDrag', { bind(el, binding, vnode, oldVnode) { const dialogHeaderEl = el.querySelector('.el-dialog__header');原创 2022-03-10 16:11:26 · 2557 阅读 · 0 评论 -
文本框实现远程搜索的用法:ElementUI
<el-form-item label="用户列表"> <el-autocomplete class="inline-input" @clear="clearUser" clearable v-model="paramData.userName" :fetch-suggestions="querySearch" placeholder=".转载 2022-02-10 18:05:58 · 304 阅读 · 0 评论 -
postMessage消息传递——window.addEventListener的运用。实现不同框架之间混用时(iframe),页面或组件之间相互传值。
window.postMessage() 方法允许来自一个文档的脚本可以传递文本消息到另一个文档里的脚本,不用管是否跨域。一个文档里的脚本还是不能调用在其他文档里方法和读取属性,但他们可以用window.postMessage结合window.addEventListene这种消息传递技术来实现安全的通信。window.addEveantListener('message',(event)=>{})event 的属性有:data: 从其他 window 传递过来的数据副本。 ori..原创 2021-10-12 18:02:57 · 21373 阅读 · 0 评论 -
vue中swiper,vue-awesome-swiper实现轮播;鼠标移入暂停,移除播放;点击暂停按钮暂停,再点击播放。
因为swiper和vue-awesome-swiper的版本较多,如果使用最新的版本,或者两者版本差距较大,就容易掉进很多的坑里面,各种报错。切记,版本一致,建议使用@3.X版本。首先,安装swiper和vue-awesome-swipernpm install swiper@3 vue-awesome-swiper@3 --save然后,按需引入项目文件 import { swiper,swiperSlide } from "vue-awesome-swiper";原创 2021-10-11 22:08:05 · 5908 阅读 · 0 评论 -
解决当循环语句与定时器一起使用时,不能实现循环等待
当循环语句与定时器setTimeout,结合使用时,如果直接写,定时器,不会起作用;而且一不小心还容易出现死循环等情况。刚开始,我以为是简单的同步和异步问题,我就使用了es7的async和await处理,但是没有生效,还是循环语句优先同步执行了。于是,我想到了闭包,将内部定义的作用域给外部,用再用setTimeout去接收,最后成功实现。代码如下: let time=1000; let animation='animation'; let styl原创 2021-09-23 16:38:04 · 497 阅读 · 0 评论