该网站使用巨大的透明 PNG 来实现视差效果,因此:
- 您必须减少图像的总重量:如果还没有这些 PNG,您可以尝试将它们转换为 PNG-8。量化算法等在将图像减少到 256 种颜色方面做得非常好,而且质量没有太多下降。
- 您必须保持视差效果的透明度。两种类型的透明度都与 PNG-8 兼容:每个像素上的类似 GIF 的不透明/透明位透明度和类似“PNG-32”的(PNG-24 + 8 位透明度),其中每个像素具有 256 级透明度。Adobe Fireworks 尤其擅长创建这样的“PNG-8+alpha”图像;转换器也存在,但它们并不完美(取决于您的图像)。
- 加载立即可见的图像的最小部分,然后再加载 9600 像素宽(!)的其余部分,将大大减少首次查看的时间。您可以通过将图像按 1920 或 2560 像素的块切片来实现这一点,将 3 个图像的查看部分加载为背景图像,并通过仅在 DOM准备好加载所有其他部分后执行的脚本来实现。没有太多的部分,因为这意味着要下载更多的资产,但仍然不是 4MB 精灵 :) 奖励:通过将 3 张图像切片为 PNG-8,每个 PNG 将有自己的 256 色调色板,整体质量会更好(不是与 PNG-24 一样完美,但比单个 9600 像素的 PNG-8 更好,后者总共只能使用 256 种颜色。在一个 PNG 中为男士西装提供更多的灰色阴影,为球棒分子提供更多闪亮的颜色等
编辑:永远不要尝试在智能手机上加载它!我确实喜欢媒体查询并避免 UA 检测,因为它大部分时间都不需要并且永远不会完美,但这是受欢迎的情况之一(选择加载 8MB 图像)......忽略不这样做的用户没有光纤并且不会等待您的网站显示是与您的问题无关的另一个问题。