滚动条显隐时页面不抖动 方案一属性属性 scrollbar-gutter 可以实现该功能方法在需要的地方设置 scrollbar-gutter: stable; 即可,此设置会将滚动条的位置预留出来,在没有滚动条时也占位。其他属性值auto默认效果stable both-edges和 stable 差不多,但是左右两边都会留空白位置进行占位,让内容居中兼容性scrollbar-gutter兼容性方案二overflow:overlay , overlay 属性设置后,滚动条为覆盖在上方,不会占空间导致页面抖动 Ginkgo 2023-09-18 3801
edge 浏览器使用IE模式 现在window已经升级到了 11 ,普遍都是 edge浏览器,没有单独的IE浏览器,此时偶尔需要用到IE浏览器,可按如下方式操作第一步如下,设置允许IE加载第二步如下:使用IE重载其他如果你是个开发人员,需要 打开控制台调试,则可以快捷键 win + R 打开运行,输入 %systemroot%\system32\f12\IEChooser.exe 后回车出现如下图,选中即可进入调试 Ginkgo 2023-09-11 1317
微信小程序-文本转图 主要依赖微信自带的 canvas 的能力实现。简单实现了长文本自动换行,段落换行,自定义水印。使用场景对于某些三方社交平台,对文字长度有限制时方便的进行转为长图片发布。使用方法微信小程序中搜索 文本转图输入内容,和水印名,不写水印名则不存在水印,点击下一步点击下载后的成果图如下 Ginkgo 2023-09-01 1916
对数组进行特定场景排序,平衡多列数据个数平衡 场景:项目中对已有的工作看板进行筛选后,希望靠左排序,实现如下图示例:代码如下:function reOrder(arr) { arr = JSON.parse(JSON.stringify(arr)); if (arr.length === 1) { // 单个场景 if (arr[0].x !== 0) { arr[0].x = 0; arr[0].y = 0; } return arr; } let xMap = {}; // 根据x的值拆分对象 arr.forEach((el) => { if (!xMap[el.x]) { xMap[el.x] = []; } xMap[el.x].push(el); }); if (!xMap['0']) { xMa Ginkgo 2023-08-25 2614
Win11 22H2 恢复完整右键菜单 原文win11 的右键菜单实在不习惯,也在网上找了不少方案,但是一个个试过去都不行,后来找到了一个可行,故在此记录。此附件针对 22H2 版本生效,其他版本未尝试。下载附件,解压后在 .bat 文件上右键以管理员身份运行。根据提示 输入 1 即可,电脑不需要重启。友情提醒: 不要随意下载运行网络上的 .bat 文件运行,运行前可打开查看内容并用杀毒软件查看一遍,此文中的文件安全可放心使用。恢复右键菜单.zip Ginkgo 2023-07-14 3667
js树形结构和扁平数组相互转换 来源树结构扁平化/** * 把嵌套数组转成平铺数组 * @param data <Array> * @param childName <String> 子集节点的名称 * @return newData <Array> */ const flatTree = (data, childName = 'children') => { if (!Array.isArray(data)) { console.warn('只支持传入数组') return [] } return data.reduce((prev, curt) => { // 有子节点的话把子节点作为一级节点递归遍历 const childs = curt[childName]?.length ? flatTree(curt[childName]) : [] return [...prev, curt, ...childs] }, []) } const ge Ginkgo 2022-10-19 4774
Object Constancy 对象固话 原文对象恒常性:表示特定数据点的图形元素可以通过转换进行可视化跟踪。关键函数可用于提高独立于转换的性能。例如,如果您过滤一个大表,您可以使用一个关键函数来减少 DOM 修改的数量:在更新选择中重新排序 DOM 元素而不是重新生成它们。我们在 Square 使用这种技术来提高商家分析的性能,这也是 D3 比大多数模板框架更快的原因之一。Object 冻结 Ginkgo 2022-03-01 1971
rollup 使用问题解决集 1、在打包过程中过程中出现如下问题 use of eval is strongly discouraged解决方案:添加 replace 插件,并进行插件配置// rollup.config.js import nodeResolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; import replace from 'rollup-plugin-replace'; // ...etc export default { // ...other config... plugins: [ nodeResolve({...}), commonjs({...}), replace({ include: 'node_modules/firebase/firebase.js', values: { 'eval(' : '[eval][0](' } }) ] }; Ginkgo 2021-10-12 4027