视差滚动效果

视差滚动效果(Parallax Scrolling)是一种网页设计技术,背景内容比前景内容移动得更慢,从而创造出一种深度感和动态感。类似下面这种:
在这里插入图片描述

1.使用纯 CSS 实现视差效果

CSS 的 background-attachment 属性可以用来实现简单的视差滚动效果。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    body,
    html {
      margin: 0;
      padding: 0;
      height: 100%;
      overflow-x: hidden;

    }

    .parallax {
      height: 100vh;
      /* 视窗高度 */
      background-attachment: fixed;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }

    .pic1 {
      background-image: url('banner1.jpg');
    }

    .pic2 {
      background-image: url('banner2.jpg');
    }

    .content {
      background-image: url('banner3.jpg');
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;

      height: 100vh;
      background-color: #f2f2f2;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 2em;
    }
  </style>
</head>

<body>
  <div class="parallax pic1"></div>
  <div class="content">Content Section 1</div>
  <div class="parallax pic2"></div>
  <div class="content">Content Section 2</div>
</body>

</html>
  • .parallax: 这个类用于背景图片部分,background-attachment: fixed;
    使背景图片固定在视窗中,而其他内容在滚动时移动,从而产生视差效果。
  • .content: 这个类用于显示普通内容部分。
  • 这种方法简单易实现,但仅适用于背景图像,并且在某些浏览器或设备上可能存在兼容性问题。

background-attachment 是 CSS3 中用来设置背景图像是随内容一起滚动、固定在视口上,还是其他行为的属性。它有以下几种取值:

  • scroll(默认值):背景图像会随着页面内容的滚动而滚动。这是默认行为。

  • fixed:背景图像相对于视口固定,不会随内容滚动。

  • local:背景图像随元素内容的滚动而滚动(适用于内容可滚动的元素)。

  • inherit:从父元素继承该属性的值。

2.使用视差库

Rellax.js 或 Parallax.js。这些库能够提供更复杂的效果和更简单的实现方式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css">
    <style>
        .parallax {
            height: 100vh;
            background-size: cover;
            background-position: center;
        }

        .content {
            height: 100vh;
            background-color: #f2f2f2;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2em;
         }
	</style>
</head>
<body>

<div class="parallax rellax" data-rellax-speed="5" style="background-image: url('your-image1.jpg');"></div>
<div class="content">Content Section 1</div>
<div class="parallax rellax" data-rellax-speed="2" style="background-image: url('your-image2.jpg');"></div>
<div class="content">Content Section 2</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/rellax/1.12.1/rellax.min.js"></script>
<script>
    // Initialize Rellax.js
    var rellax = new Rellax('.rellax');
</script>

</body>
</html>
  • Rellax.js: 是一个简单而强大的视差滚动库,允许你为不同的元素设置不同的滚动速度。使用 data-rellax-speed
    属性可以控制元素的滚动速度,值越大,滚动速度越快,视差效果越明显。
  • 初始化 Rellax.js: 通过 new Rellax(‘.rellax’) 初始化库并应用到带有 rellax 类的元素上。
  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值