如何创建:视差滚动
学习如何使用 CSS 创建“视差”滚动效果。
视差滚动
视差滚动是一种网站设计趋势,其中背景内容(例如图像)在滚动时的移动速度与前景内容不同。点击下面的链接,查看有视差滚动和没有视差滚动的网站之间的区别。
注意:视差滚动并不总是在移动设备/智能手机上有效。但是,您可以使用媒体查询在移动设备上关闭此效果(请参阅本页最后一个例子)。
如何创建视差滚动效果
使用一个容器元素,并向该容器添加一幅具有特定高度的背景图像。然后,使用 background-attachment: fixed
创建实际的视差效果。其他背景属性用于居中和完美缩放图像:
以像素为单位的实例
<style> .parallax { /* 所用的图像 */ background-image: url("img_parallax.jpg"); /* 设置特定高度 */ min-height: 500px; /* 创建视差滚动效果 */ background-attachment: fixed; background-position: center; background-repeat: no-repeat; background-size: cover; } </style> <!-- Container element --> <div class="parallax"></div>
上面的例子使用像素来设置图像的高度。如果您想使用百分比,例如 100%,以使图像适合整个屏幕,请将视差容器的高度设置为 100%。注意:您还必须将 height: 100%
应用于 <html> 和 <body>:
以百分比为单位的实例
body, html { height: 100%; } .parallax { /* 所用的图像 */ background-image: url("img_parallax.jpg"); /* 全高 */ height: 100%; /* 创建视差滚动效果 */ background-attachment: fixed; background-position: center; background-repeat: no-repeat; background-size: cover; }
一些移动设备在使用 background-attachment: fixed
时会出现问题。但是,您可以使用媒体查询在移动设备上关闭视差效果:
实例
/* 关闭所有平板电脑和手机的视差滚动。如果需要,可以增加/减少像素 */ @media only screen and (max-device-width: 1366px) { .parallax { background-attachment: scroll; } }
在上述代码中,当屏幕宽度小于或等于 1366 像素时,将关闭视差滚动效果,这对于大多数平板电脑和手机都是适用的。这是通过改变 .parallax
类的 background-attachment
属性从 fixed
到 scroll
来实现的。这样,背景图像就会随着页面的其余部分一起滚动,而不是固定在视口中。