1. 灰色蒙层条的物理本质:微透镜竖纹光栅玻璃
这些灰色蒙层竖条本质上就是一层微型柱面透镜阵列(Reeded / Lenticular Fluted Glass)。
• 静止态(未悬停): 灰色蒙层依然存在,但处于高透明度的轻微纹理状态(近乎隐形,只保留一层高雅的物理玻璃微反光)。
• 文字在玻璃下方: 文字本身并无竖线,是位于竖纹玻璃下方的独立内容,其可见度直接受光栅玻璃的开合折射控制。
2. 两侧自然隐匿与高斯柔化漫射彩虹光斑(Foil Diffusion & Edge Falloff)
• 两侧自然隐匿(Edge Falloff):在物理光栅中,只有观察视角落在镜面反射与布拉格衍射窗口中心区域(偏角较小)时彩虹才最亮。当鼠标游移到卡片两侧边缘时,衍射光线不再折射进人眼,彩虹会自动平滑淡出至完全隐匿(近乎看不见),保留纯粹真实的玻璃质感。
• 高斯柔化漫射(Gaussian Blur):圆柱微透镜对薄膜干涉彩虹光谱具有强烈的焦外漫射虚化效果,彩虹各色谱之间不存在生硬色块边界,而是通过高斯模糊与多层羽化扩散(36px+ Blur)柔和交融,形成通透柔美的全息极光感。
3. 鼠标左右平移时竖条宽度与文字展示的动态律动
这正是光栅画“翻转透光”最精妙的核心光学效应:
• 鼠标在左侧: 左侧光栅条纹由于观察视角斜切被极端压缩变窄,透镜“闭合”,下方的文字被重度遮蔽压缩,因而几乎看不见。
• 鼠标向右平移: 光线入射角随之推展,右侧蒙层竖条逐渐放宽展开,透光孔径打开,文字得以自然展开并完整清晰呈现。
动效模块与布局模块可独立使用,也可组合成轮播
import { LenticularCard } from './src/lenticular-card.js';
import { Carousel } from './src/carousel.js';
// 1. 动效模块:创建一张光栅画卡片(自包含,可脱离轮播独立使用)
const card = new LenticularCard({
image: 'assets/cards/concrete-chorus.jpg',
tag: 'REPETITION',
title: 'Concrete Chorus',
description: 'Austin, Texas',
params: { strips: 56, foil: 0.5, blur: 36, ridge: 0.5, refraction: 0.32, tilt: 14, lift: 40, warping: 0.45, foilTilt: 30 },
onHover: (hovered) => console.log('hover:', hovered),
onActivate: () => console.log('clicked'),
});
document.body.append(card.element);
// 2. 布局模块:通用轮播(不关心卡片内部是什么效果)
const carousel = new Carousel({
track: document.getElementById('carousel-track'),
dots: document.getElementById('pagination-dots'),
prevButton: document.getElementById('prev-card-btn'),
nextButton: document.getElementById('next-card-btn'),
inactiveDim: 0.55,
onChange: (i) => console.log('active:', i),
});
carousel.add(card.element);
// 3. 实时调参 / 分解视图 / 切换 / 销毁
card.setParams({ foil: 0.9 });
card.setExploded(true);
carousel.setActive(1);
carousel.setInactiveDim(0.4);
card.destroy();