
JS
不说别的就是很菜
这个作者很懒,什么都没留下…
展开
-
vue实现一个popover悬浮组件(简易版)
效果图实现思路定义组件,监听元素的mouseenter和mouseleave还有组件的mouseenter和mouseleave事件由于有滚动等交互需求,所以加一个轮询,监听鼠标对于元素和popover组件的交互状态实现代码<!-- * @Fileoverview: 保护措施详情 * @Description: 仪表盘-数据流图-保护措施详情--><template> <div class="popover"> <div原创 2022-05-27 14:34:36 · 3918 阅读 · 6 评论 -
vue+原生js实现滚动加载数据动画
效果展示实现思路通过动态移除和新增元素实现代码run() { if (!this.isRuning) { this.isRuning = true; let runRes = this.$refs.runRes; let i = 0; while (runRes.hasChildNodes()) { runRes.removeChild(runRes.firstChild); } this.interval = setInterva原创 2021-10-28 14:37:55 · 267 阅读 · 0 评论 -
vue+原生js+element-ui实现轮播列表动画(无限轮播)
效果展示实现思路用element-ui中的el-row和el-col来构建列表,若无element-ui,也可用类似布局组件或直接用div元素实现将滚动区域封装,使用绝对定位与相对定位的方式,并将超出滚动区域部分hidden隐藏下述业务代码有每分钟刷新一次列表的需求,所以用两个interval,若纯轮播则一个interval即可通过改变子元素相对于父元素的top值,并设置transition: all 1s;即可出现如图所示效果当轮播结束后再次首尾相连,即可实现无限轮播关键代码流畅过原创 2021-10-28 14:17:36 · 4744 阅读 · 0 评论 -
node.js+redis 用promise解决在多个数据库同时写入时出现错乱问题
问题背景同时在redis多个数据库中同时写入数据,有的数据未写入,有的数据写入到了别的数据库原因redis是用c语言实现的,同时select数据库的时候会出现指针错乱问题,由于redis跑任务时候是多线程的,所以当同时select时,select0号数据库写入的时候,指针指向0号数据库,但未完成写入操作时,别的select数据库线程覆盖了。导致指针指向了1号数据库,导致写入0号数据库的key-value到了1号数据库,从而导致错乱解决方法(promise)对于这种问题,为了保证指针不错乱,就要求异原创 2021-04-19 10:27:41 · 550 阅读 · 1 评论 -
js判断对象是否为空对象的简单方式(使用JSON.stringfy)
直接使用JSON.stringfy(x)转换为JSON字符串,再做字符串的比较即可原创 2020-12-22 10:19:30 · 264 阅读 · 0 评论 -
原生js清空子元素与添加子元素
清空子元素(removeChild)//获取父元素let content = document.getElementsByClassName("table-page__text")[0];//循环删除子元素,一直删除第一个子元素直到没有子元素即为清空while (content.hasChildNodes()) { content.removeChild(content.firstChild);}添加子元素(insertAdjacentHTML)let content = docume原创 2020-12-22 10:16:06 · 1935 阅读 · 1 评论 -
使用moment将毫秒精度时间戳转换为分钟精度时间戳
一般情况下默认时间戳精度为毫秒精度,转换为分钟精度用到moment.jsmoment(newDate().getTime()).startOf("minute").unix() * 1000Moment.js是JavaScript 日期处理类库原创 2020-12-22 10:11:55 · 5094 阅读 · 0 评论 -
vue+echarts 实现日历坐标系+热力图 按月隔开的图表
预览(由于图表过长,用div包裹后实现滚动)实现分隔思路日历坐标系不自带分隔,就用边框粗细来实现伪分隔还有一种分隔思路是使用多张热力图图表,这意味着series中会有多个对象,而且不方便传值echarts官方实例中不带文字的显示,所以根据文档查阅,自定义热力图中的label就可以实现实现代码<div class="ip-risk--left"> <div ref="chart" class="ip-risk__chart"></div> <原创 2020-12-02 17:14:53 · 2746 阅读 · 0 评论 -
原生JS 对象的深拷贝(包括对类型的判断)
代码function deepCopy(obj, cache = new WeakMap()) { // 判断是否为对象 if (!(obj instanceof Object)) { return obj; } if (cache.get(obj)) { return cache.get(obj) } // 判断是否为函数类型 if (obj instanceof Function) { return function () { obj原创 2020-11-11 09:57:21 · 155 阅读 · 0 评论 -
原生JS 日期格式化 (形如yyyMMdd hh:mm:ss等)
代码export function formatDate(date, fmt) { var currentDate = new Date(date); var o = { "M+": currentDate.getMonth() + 1, //月份 "d+": currentDate.getDate(), //日 "h+": currentDate.getHours(), //小时 "m+": currentDate.getMinutes(), //分 "s原创 2020-11-11 09:44:49 · 1377 阅读 · 0 评论 -
el-drawer 设置抽屉内容的滚动显示(非整个抽屉的滚动&包括父子组件传参)
效果图实现思路在父组件中加入要执行交互的元素与el-drawer组件,还有我们要放在el-drawer中的内容组件<template> <div class="home"> //执行交互的元素(这里用的是按钮) <el-button @click="drawer = true" type="primary">点我打开</el-button> // el-drawer组件 <el-drawer :v原创 2020-10-23 16:57:34 · 12566 阅读 · 0 评论 -
原生JS 使用Map将 字符串数组 转 对象数组
字符串数组let test=["item1","item2","item3"];利用map转为对象数组test=test.map((item,index)=>{ return{ key:index, value:item }});原创 2020-10-23 14:29:44 · 2772 阅读 · 0 评论 -
JS深浅拷贝的多种实现方式
浅拷贝概念:拷贝引用类型的数据指针,拷贝前和拷贝后的数据结构指向同一块内存地址,增删改查会互相影响通过for循环遍历let obj2={};for(let key in obj){ if(obj.hasOwnProperty(key)){ obj2[key]=obj[key]; } }通过(…)扩展运算符let obj2={...obj};深拷贝概念:开辟一块新的内存空间,复制要拷贝的数据至新创建的内存空间,两个数据结构的增删改查互不干扰原创 2020-08-03 14:42:15 · 299 阅读 · 0 评论 -
ES6 JS实现节流防抖[使用箭头函数与扩展运算符(...)]
知识点箭头函数扩展运算符(…)这两个都是ES6新语法,网上有非常多的文章详解防抖// 使用定时器实现function debounce(fn, delay) { let timer = null; return (...args) => { if (timer) clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); }, delay); };}原创 2020-07-31 01:07:02 · 2809 阅读 · 2 评论