Skip to content
使用 ECharts 制作掘金个人信息报表

有时候我们会需要在程序里调用方法并触发图表的行为,比如显示 tooltip。ECharts 通过 dispatchAction({ type }) 来触发图表行为,统一管理了所有动作,也可以根据需要去记录用户的行为路径。

Web3 与区块链有关吗?

Web3 和 Web4 分别代表了互联网的两个不同演进方向。Web3 着重于去中心化、用户数据所有权和区块链技术,而 Web4 则关注智能、自适应和协同的在线体验。这两个概念并非完全互斥,实际上,未来的互联网可能会涵盖这些领域的各种创新。

使用 Web Animations API 实现点击阅读更多动画

一个根据 jQuery 动画改写为 Web Animations API 的例子。

Vue3 中使用 defineCustomElement 定义组件

Vue 和 Web Components 是互补的技术,Vue 为使用和创建自定义元素提供了出色的支持。你可以将自定义元素集成到现有的 Vue 应用中,或使用 Vue 来构建和分发自定义元素。

Vue3+Vite 中 JSX 的使用方式

JSX 语法并没有定义运行时语义,并且能被编译成各种不同的输出形式,Vue 的 JSX 编译方式与 React 中 JSX 的编译方式不同。

ES6 Proxy 中的 this 指向

在 handler 拦截函数中,如果遇到 target 中有定义的 getter,则 getter 中的 this 指向调用的 target,即不会改变指向,但可以手动将其指向 receiver。

Canvas 实现文字水印和图片水印合成

CanvasRenderingContext2D.drawImage(image, dx, dy, dWidth, dHeight) 方法可以从页面 DOM 元素作为图像源来根据坐标和大小重新绘制该图像。HTMLCanvasElement.toDataURL() 方法支持导出为 base64 字符串。

SQLite3 官方支持 WebAssembly

SQLite 官方的 wasm 项目终于来了!这表示 WebAssembly 在 SQLite 社区完全进入工业级应用阶段!

总结了一下各类软件许可协议

软件许可证(或软件许可协议)是一种具有法律性质的合同或指导,由软件作者与软件用户签订,用以规定和限制软件用户使用、拷贝、修改和再发布软件(或其源代码)的权利,以及软件作者应尽的义务。

前端本地存储数据库 IndexedDB 的范围查询和对结果计数

SQL 语句中有 BETWEEN 操作符和 COUNT() 函数可以用来对匹配的记录进行过滤和计数。IndexedDB 也提供了 IDBKeyRange 接口和 IDBObjectStore.count() 方法可以实现相同的目的。

Vue3 中 pinia-plugin-persistedstate Vite 插件的使用

pinia-plugin-persistedstate 插件可以使 Pinia 存储的持久性变得更简单和可配置。

新 CSS 属性 offset-path 使元素沿着不规则路径运动

SVG SMIL animation 可以很容易实现元素沿着不规则的路径运动动画,但由于其依赖 SVG 元素和 HTML 属性,容易造成复用时的冗余,不利于维护。新 CSS 属性 offset-path 可以看成是其替代方案,它指定了元素的运动路径,并定义元素在父容器或 SVG 坐标系中的定位。

总结一下 jQuery 的原生替代方法

jQuery 可以保护我们不受浏览器兼容的影响,而事实上,在 IE8 之后,浏览器自己就很容易处理兼容问题。

如何更简单地更改 input type=file 文件选择框的样式

Chrome 89 开始支持,目前除了 IE,其他各浏览器都已支持,通过伪元素 ::file-selector-button 匹配 input type="file" 元素上的按钮,定制文件选择框的样式。

修改单选框、复选框、下拉框的默认样式

从 Chrome 93 开始支持的 CSS accent-color 属性提供了更简单的修改表单控件的样式的方法,它可以在不改变浏览器默认表单组件基本样式的前提下重置组件的颜色。

✏️修改常见的原生表单控件的默认样式

针对特定表单控件,浏览器提供了特定的伪元素用来改变样式。

如何在外部修改 Shadow DOM 内部的 CSS 样式

::part CSS 伪元素表示在 Shadow DOM 中任何匹配 part 属性的元素。只需要在 Shadow DOM 中元素上添加 part 属性,然后在外部使用 ::part 伪元素选择匹配 part 属性的元素改变样式即可。

使用 mix-blend-mode 实现不套标签搜索关键字高亮

一般实现是文字搜索高亮,需要动态给文字内容套一层标签,然后才能改变匹配文字的颜色。现在,通过 mix-blend-mode 混合模式,我们可以在不嵌套任何标签的情况下,让任意的文字颜色变色。

将列表转化为一个带图标的可折叠/展开的菜单

将一个无序列表转化为一个带图标的可折叠/展开的菜单。可以使用 Web Component、使用 details 和 summary 配合 ::marker 伪元素、使用 checkbox 和 label 标签这几种方式。

不使用 input file 元素,JS 如何操作文件

从 Chrome 86 开始,在浏览器中 File System Access API 提供了 JS 操作文件的能力,目前只有基于 Chromium 系列的浏览器全面支持,Safari 部分支持,而 Firefox 未支持。该 API 允许读取文件、写入或保存文件以及访问目录结构,包括本地文件系统和网络文件系统。