图片懒加载测试器 - loading=lazy 效果对比
放置大量图片并开启懒加载,通过滚动观察网络请求的发起,验证原生延迟加载。
UD5工具箱
可视化构建 DataTransfer 对象,模拟拖放数据,实时测试并生成代码。适用于前端开发、单元测试与拖放交互调试。
DataTransfer 是 HTML5 拖放 API 的核心对象,用于在拖放操作中携带数据。它在 DragEvent.dataTransfer 中可用。核心属性包括:
effectAllowed — 在 dragstart 中设置,指定允许的拖放操作类型(none/copy/move/link/all 等)dropEffect — 在 dragover 中设置,指定目标期望的操作(必须匹配 effectAllowed)files — 只读 FileList,包含从操作系统拖入的文件items — DataTransferItemList,提供更底层的数据访问types — 只读数组,列出所有可用的数据格式(如 text/plain、Files)setData(format, data) — 设置指定格式的数据(仅在 dragstart 中有效)getData(format) — 读取指定格式的数据(主要在 drop 中使用)effectAllowed 在 dragstart 事件中由拖拽源设置,表示该次拖放允许哪些类型的操作。它是一个"能力声明"。
dropEffect 在 dragover 事件中由放置目标设置,表示目标期望的具体操作。它必须在 effectAllowed 允许的范围内,否则浏览器会忽略放置。
关系示例:
copyMove → dropEffect 可以是 copy 或 movelink → dropEffect 只能是 link 或 nonenone → 任何 dropEffect 都会被阻止现代浏览器支持 new DataTransfer() 构造函数,可以在测试中创建 DataTransfer 实例:
const dt = new DataTransfer();
dt.setData('text/plain', 'hello');
dt.effectAllowed = 'all';
const event = new DragEvent('drop', { dataTransfer: dt, bubbles: true });
element.dispatchEvent(event);
对于需要文件的场景,可以使用 dt.items.add(new File([...], 'test.txt')) 添加文件。
DataTransfer 对象有一个内部的 mode 属性:
"readwrite",可以调用 setData、setDragImage"readonly",setData 调用会被静默忽略这是浏览器的安全机制,防止放置目标修改拖拽源已经设置的数据。只有在 dragstart 中可以写入数据。
浏览器默认不允许在任意元素上放置。必须在 dragover 事件中调用 event.preventDefault(),告诉浏览器该元素是一个合法的放置目标。否则 drop 事件不会触发。
常见写法:
target.addEventListener('dragover', (e) => {
e.preventDefault(); // 必须!
e.dataTransfer.dropEffect = 'copy';
});
移动端浏览器基本不支持 HTML5 Drag and Drop API。这是因为移动设备使用触摸事件(touchstart/touchmove/touchend),而不是鼠标拖放。如果需要在移动端实现拖放功能,建议使用触摸事件或专门的拖放库(如 SortableJS、Interact.js)。
本工具主要用于桌面端浏览器的拖放功能开发和测试。
放置大量图片并开启懒加载,通过滚动观察网络请求的发起,验证原生延迟加载。
生成从0滚到目标数字的动画,可调节速度和延迟,复制HTML/JS代码。
输入复杂对象,使用 structuredClone 进行深拷贝,并对比原始对象与克隆体,展示可拷贝类型。
构建带具名插槽的 Shadow DOM,改变宿主内容观察插槽分配,学习组件组合。
动画展示埃拉托斯特尼筛法逐步划去倍数,最终留下指定范围内的所有素数。
输入盘子数量,动画展示汉诺塔的递归移动步骤,帮助理解递归思想。
将图片处理为浮雕效果,模拟雕刻凸起感,可调光线方向以控制凹凸视觉。
可混入指定关键词的Lorem Ipsum生成器,支持段落、列表与HTML标记,更真实模拟内容。
以线框形式渲染正四面体、立方体等柏拉图立体,可鼠标拖拽旋转。
生成深邃宇宙风格的粒子背景代码,粒子间近距离自动连线,适合科技感网页。
逐步动画展示埃拉托斯特尼筛法,高亮被划掉的合数,直观理解素数生成原理。
拖入 Lottie 动画 JSON 文件,即刻播放矢量动画,支持暂停、调速、背景颜色设置。
构建嵌套元素,触发事件并逐步显示事件流经路径,可切换捕获/冒泡模式。
以3D方式展示太阳系大致轨道,可缩放和加速时间,观察行星公转顺序。
根据 JSON 数据结构在线生成 Java 类代码,包含字段映射、getter/setter,支持嵌套类型。
将图片转换为由彩色三角形构成的低多边形艺术风格,可调整三角网格密度和模糊。
设置不同属性的 Cookie 并展示其跨站行为,帮助理解现代 Cookie 安全策略。
在Canvas上控制一条不断增长的蠕虫吃光点,撞墙或撞到自己则结束。
输入共享密钥,实时生成30秒TOTP,验证与特定平台二次验证的一致性。
运行包含缺陷的正则表达式,展示如何导致浏览器假死,并学习如何避免。
输入`*/5 * * * 1`这样的Cron表达式,翻译成“每周一每隔5分钟”的人类语言。
模拟两个分支修改同一文件产生的冲突标记,在编辑器中手动解决并提交,学习冲突处理。
编辑用户名、头像、内容、点赞数等,生成逼真的假推文截图,用于演示或搞笑。
设置多个质点的质量和初始速度,模拟万有引力下的运动轨迹,观察三体问题等混沌现象。
输入用户查询,测试 Dialogflow 代理的意图匹配、参数提取和回复。
模拟带音效和特效的开箱过程,随机获得不同皮肤的道具。
自定义稀有度概率(SSR/SR/R)和奖品列表,模拟游戏抽卡动画及统计。
应用马氏算法将图片转换为红色盲、绿色盲、蓝色盲视角的模拟效果。
打开摄像头,实时应用红绿色盲、蓝黄色盲等滤镜,沉浸式体验色觉障碍的世界。
交互式模拟Enigma I密码机,可配置转子、环形设置和插线板,加密解密消息。