-
Javascript获取浏览器和系统缩放比例
背景做屏幕适配,除pxtorem的另外一种方案代码示例// 获取缩放倍数(1*系统缩放倍数*浏览器缩放倍数)function getZoom() { let zoom = 1; const screen = window.screen, ua = navigator.userAgent.toLowerCase(); if (window.devicePixelRatio !== undefined) { zoom = window.devicePixelRatio; }...…
-
可编辑div插入html
背景业务中需要在输入框中输入文本和html,所以采用了可编辑DIV。在插入html元素之后需要设置需要设置range开始位置为插入元素之后,然后再插入一个​以保证可以继续在插入html元素之后继续进行输入内容。代码示例<template> <div> <div class="editable-div" contenteditable="true" placeholder="hahahah" v-html="...…
-
vue transition-group 添加缓动效果
原理vue transition-group缓动效果的原理添加moveClass, moveClass的特性核心代码在 transition-group 组件中的 update 钩子中(在修改数据时就会触发这个函数):1、获取 moveClass,如果没有在 transition-group 组件节点中定义 moveClass 属性,那么就在 name 属性值后面拼接 move;2、如果没有子节点或者检测到子节点没有通过 transition 监听 transform 或者 all(通过 ...…
-
Javascript String Xor Operation
JavaScript中字符串是不可变的,因此不能直接进行异或运算。但是,我们可以将字符串转换为数字数组,然后对每个数字进行异或运算,最后将得到的结果转换回字符串。下面是一个使用异或运算加密字符串的示例代码:// 将字符串转换为数字数组function stringToByte(str) { var arr = []; for (var i = 0; i < str.length; i++) { arr.push(str.charCodeAt(i)); } return ...…
-
vue-quill-editor 工具栏自定义字体大小选项
背景在项目中使用富文本编辑器vue-quill-editor, 但是组件默认可选的文字大小仅有四种并且不是设置的行内样式,在编辑的富文本内容脱离了框架之外则不能正常显示设置的样式。Baidu了好多之后发现都是通过修改node_modules中quill编译之后的代码,但是这并不是我想要的。在打开正确上网方式网上冲浪之后找到最终的解决方案。 BTW: 墙裂建议大家不要直接修改node_modules中的js、css修改之后的效果修改步骤1.注册并添加白名单import { Quill } ...…
-
SVG图片动态修改颜色
原理页面中使用 <img> 标签显示svg图片时,可以通过css中 transform 和 filter 属性配合容器元素的 overflow:hidden 来显示不同的颜色,具体逻辑是通过控制图片的偏移和投射阴影来实现,具体看代码。代码示例<template> <div class="svg-box" :style="{'width': `${size}px`,'height': `${size}px`}"> <img :sr...…
-
ECharts 自定义立体柱状图
最终效果配置项var categoryData = [];var errorData = [];var barData = [];var dataCount = 100;for (var i = 0; i < dataCount; i++) { var val = Math.random() * 1000; categoryData.push('category' + i); errorData.push([ i, echarts.num...…
-
Apache James 邮件服务部署
邮件服务器可选软件 软件1、Apache James软件2、linagora软件3、sendmail官网http://james.apache.org/ James Components(组件): Emailing protocols: SMTP, LMTP, POP3, IMAP, ManageSieve, JMAP Mailet container: independent, extensible and pluggable email processing age...…
-
mysql错误代码对照表较完整
0101 属于其他进程的专用标志。 0102 标志已经设置,无法关闭。 0103 无法再次设置该标志。 0104 中断时无法请求专用标志。 0105 此标志先前的所有权已终止。 0106 请将软盘插入驱动器 %1。 0107 后续软盘尚未插入,程序停止。 0108 磁盘正在使用或已由其他进程锁定。 0109 管道已经结束。 0110 系统无法打开指定的设备或文件。 0111 文件名太长。 0112 磁盘空间不足。 0113 没有其他可用的内部文件标识符。 0114 目标内部文件标识符不正确...…
-
Javascript 深度拷贝对象
js通过JSON.parse和JSON.stringify复制或转换对象时会丢失function,所以使用deepClone去处理,记录一下。// 深拷贝对象 export function deepClone(obj) { const _toString = Object.prototype.toString // null, undefined, non-object, function if (!obj || typeof obj !== 'object'...…