让选中的图片或块模糊
see https://ld246.com/article/1734947243187
我写了个 js,按 ctrl/meta + alt + b 可以让选中的图片或块模糊,不过这个模糊是临时的,不会保存
注意,单选可点击下图片或块标即可
参数:
// 模糊样式
const filter = 'blur(6px)';
// 模糊期间块是否可编辑,默认禁止编辑,如果设为 true,块编辑后会导致模糊效果被保存,如果你刚好需要这种效果,可以把这个值设为 true
const editableOnBlur = false;
不过,如果位置固定,可在录制时,使用截图工具的图片悬浮功能覆盖原位置,截图后使用截图工具的模糊效果模糊一下,再录制也可以。
更进一步,可以用一个悬浮的透明 div,然后这个 div 可拖动大小,然后根据这个 div 覆盖的范围,把这个范围内的元素都模糊。
核心代码如下,有兴趣的朋友可以进一步完善。
function getElementsInRange(startX, startY, endX, endY) {
const elementsSet = new Set(); // 用于存储所有元素
// 遍历范围内的每个坐标点
for (let x = startX; x <= endX; x++) {
for (let y = startY; y <= endY; y++) {
// 获取该坐标点的所有元素
const elements = document.elementsFromPoint(x, y);
// 将元素添加到 Set 中(自动去重)
elements.forEach(element => elementsSet.add(element));
}
}
// 将 Set 转换为数组并返回
return Array.from(elementsSet);
}
// 示例:获取左上角 (100, 100) 到右下角 (200, 200) 范围内的所有元素
const elementsInRange = getElementsInRange(100, 100, 200, 200);
console.log(elementsInRange);
