这是一款三维螺旋图片无限滚动效果,基于 HTML+JavaScript 与 Three.js(WebGL)加自定义着色器实现。二十多张图片沿螺旋轨迹环绕成一条上升的"胶片带",滚轮或触屏上下滑动即可让它连续旋转穿行,松手后带着摩擦衰减的惯性慢慢停下;鼠标拖拽能小幅倾斜整个螺旋换视角,左右方向键可微调远近。
有意思的是它的实现思路:并没有摆二十多张独立卡片,而是把所有图先拼进一张长条画布当作总贴图,再把一个平面网格按公式弯成螺旋,滚动时只是平移 UV 坐标并循环取值——所以既没有接缝,帧率也稳,图片再多也是同一次绘制。换图很简单,改 imageUrls 数组即可,圈数和高度会跟着数量自动调整,每张图的宽高比也会保留。要注意两点:图片被烘进单张贴图,数量或分辨率过高会顶到显卡贴图尺寸上限,建议控制在几十张、单边不超过 800px;另外用了 canvas 读图,图片源必须支持跨域,否则会加载失败。
适用于摄影作品集与图集展示、品牌视觉首屏、活动专题页、数字展厅与沉浸式产品陈列等场景。