我花了整整一个下午,破坏用JavaScript写了一个会破坏网页的网页“小飞机”。不是小飞攻击别人的网站,只是破坏在本地浏览器里,对着自己打开的网页页面撒野。它不炸服务器,小飞不偷数据,破坏只是网页纯粹地——让你正在看的网页碎掉。
代码逻辑很简单。小飞监听鼠标移动,破坏飞机跟着光标跑,网页机翼带出一道细长的小飞拖尾。这拖尾不是破坏光效,是网页实打实的DOM元素,每帧生成一个div,小飞随机旋转角度,随机染上红黄蓝的色块,然后让它们在下一次动画帧里被移除。说白了,就是一场视觉上的“拆迁仪式”。
你可能会问,这有什么意义?意义就是——当你打开一篇密密麻麻的文档,或者一个排版精致的官网,小飞机飞过的地方,文字会像被风吹散的纸屑一样,一块块崩落。段落错位,图片歪斜,导航栏的按钮开始原地旋转。那种感觉,像在看一栋精心搭建的积木房子被熊孩子一巴掌拍塌,带着某种荒诞的快感。
我特意给飞机加了点“恶意”:每撞到一个元素,就给它添加一个随机的CSS类,让它的边框变成虚线,背景色反转,字体开始抖动。有的元素会直接变成透明,但还在占位,你鼠标点上去,能选中看不见的文字,复制出来还是完整的句子。这种“看得见又摸不着”的破坏,比直接删除更让人抓狂。
有个细节很有意思。当页面上的元素多到一定程度,浏览器开始卡顿,飞机也变得迟钝。这时候我暂停了动画,看到满屏碎裂的布局,忽然觉得——这不就是现实世界的隐喻吗?我们每天浏览的网页,看似稳定,其实底层全是脆弱的规则和约定。一个不守规矩的脚本,就能让精心设计的秩序瞬间崩塌。
后来我把这个项目分享给朋友,他说:“这不就是给代码写的涂鸦吗?”我想了想,确实。破坏本身不是目的,重点是观察破坏过程中那些意外的形态。有些文字碎片叠在一起,竟然产生了新的排版美感;有些图片被反复撞击后,露出了背后的alt文本,像撕开海报后看到墙上的字迹。
当然,这玩意儿不能真放网上供人使用,不然就是妥妥的恶意工具。它只存在于我的本地环境,作为一次对“网页稳定性”的逆向测试。每次刷新页面,重新加载那些被我毁掉的站点,看着它们恢复原样,我反而对这种“可恢复的破坏”产生了一种信任感——原来数字世界比我想象中更抗造。
写到最后,我忽然想起小时候玩的那种橡皮擦,能把作业本上的字擦出毛边。小飞机就是我的数字橡皮擦,只不过它擦掉的不是错误,而是那些被设计得太过完美的界面。擦完之后,留下的空白里,藏着另一种可能性。