将此归类为个人“CSS 顿悟时刻”。
background-attachment
属性对我来说一直没有那么有用。我一直把它看作是 GeoCities 时代的一种老式设计技巧,用来让重复背景在滚动时保持在原位。
查看 Geoff Graham 在 CodePen 上制作的 QEPQqp 演示。
事实证明,具有固定位置的背景比这更有用。在元素中添加单行 background-attachment: fixed;
实际上可以为我们提供一些功能,使我们能够以一种不会产生其他依赖项(如 JavaScript 或复杂动画)的方式在内容之间进行平滑、优雅的过渡,从而增强用户体验。
模拟幻灯片
正在制作演示文稿吗?将单个页面分成“幻灯片”非常简单。
.slide {
background-image: url('path-to-url');
background-attachment: fixed;
height: 100vh;
width: 100%;
}
当我们在 HTML 中三次调用 .slide
元素时,这些幻灯片看起来就像页面向下滚动时彼此重叠一样。
查看 Geoff Graham 在 CodePen 上制作的 CSS 中的滚动背景 – 01 演示。
没有库。没有滚动劫持。纯 CSS 具有全面的浏览器支持(好吧,除了触摸屏)。这可能与 CSS 滚动捕捉点 配合使用会很有趣。
“滑过页眉”的页眉
假设我们要使用一些花哨的页眉,内容会覆盖它。我们也可以做到这一点。
查看 Geoff Graham 在 CodePen 上制作的 akrJjY 演示。
模拟透明度
还记得教室里曾经使用 投影仪,老师们必须制作他们称之为透明胶片的材料来展示分层信息吗?我们也可以做到这一点!
查看 Geoff Graham 在 CodePen 上制作的 CSS 滚动背景 – 西雅图之旅 演示。
其他精彩示例
在 CodePen 上还有很多其他精彩的实际应用示例。这里列举几个供您参考。
在文章开头(以及中间)的滑动面板
查看 Shane Zentz 在 CodePen 上制作的 RRJWAA 演示。
倾斜且透明的重叠部分
查看 carpe numidium 在 CodePen 上制作的 skewroll 演示。
滚动翻页书
查看 Derek Palladino 在 CodePen 上制作的 滚动翻页书 演示。
文章中间的背景页眉断点
查看 Sam Stevenson 在 CodePen 上制作的 vKOvgJ 演示。
固定面板内的裁剪页眉
此示例实际上没有使用 background-attachment,但它非常酷,并且效果相关。
查看 Stephen Scaff 在 CodePen 上制作的 Gettin’ Clippy 演示。
我喜欢滑过页眉的页眉。这真是一个常见的事情,现在变得更容易了!我认为这种方法最棒的地方在于它不会产生任何多余的标记。
翻页书也很可爱。我不会想到自己去构建它,但它仍然很酷。
Geoff,干得漂亮。
谢谢 Sean!探索所有这些用途(而不是显而易见的用途)很有趣。
这是一个很棒的资源。谢谢!
我喜欢这个!它让我想变得更有创意,尝试一些这些方法——感谢你的文章。
这些才是真正的 CSS 技巧——除了最后一个示例,不需要 JavaScript。做得非常好。我已经将它收藏起来,以便将来参考。
我在 iOS 上测试了一些演示。在向上/向下滑动以滚动页面时,出现了一个故障;如果初始点击在固定背景图像上,页面有时会卡住。有人可以重现吗?
我认为在 iOS 中没有一个演示有效——至少在我的 iPad(Pro)上不起作用。
;-(
它在 iOS Safari 中无法正常工作。
https://caniuse.cn/#search=background-attach
我忘记提了,是的,它在 iOS 上不支持,但这并不是问题,因为回退是可以接受的。问题是故障。尝试点击背景图像,然后向上/向下滑动以滚动。页面是否短暂出现故障然后卡住?
非常有趣的文章。五颗星……
你可能需要改变你关于“全浏览器支持”的措辞,因为它基本上在所有移动浏览器中都不可用。 https://caniuse.cn/#feat=background-attachment 我开始在手机 Chrome 上阅读这篇文章,对看到的内容感到非常困惑。
好建议,已经完成处理!
这是一个很棒的集合,你可以用背景做很多事情。我特别喜欢带有树木背景的滑动面板和带有对角线图像的面板。我需要进一步研究它们,看看到底是什么让它们运行起来 :)
我差点笑死在提到 Geocities 的地方。美好的回忆。但这是一组很棒的示例,很多人都不会想到这些
很棒的文章!我觉得我们有时会过度复杂化构建,所以看到实现这些效果的简单方法让人耳目一新!
background-attachment: fixed; 在滚动时会导致持续重绘,在 Chrome 开发者工具中打开重绘闪烁并查看。