Home  >  Article  >  Web Front-end  >  How to achieve smooth scrolling background gradient effect on web pages through pure CSS

How to achieve smooth scrolling background gradient effect on web pages through pure CSS

WBOY
WBOYOriginal
2023-10-25 11:19:431563browse

How to achieve smooth scrolling background gradient effect on web pages through pure CSS

How to realize the smooth scrolling background gradient effect of web pages through pure CSS

1. Introduction

In web design, the background gradient effect can be used for websites Add beauty and dynamics. Smooth scrolling background gradients can make web pages more attractive and give users a comfortable browsing experience. This article will introduce how to achieve the smooth scrolling background gradient effect of web pages through pure CSS, and provide specific code examples.

2. Principle of realizing background gradient effect

Before realizing the smooth scrolling background gradient effect, we first understand the principle of realizing background gradient. In CSS, the background gradient effect can be achieved through the linear-gradient() function. This function accepts a start color and an end color, and fills the gradient based on the selected direction and position.

3. Steps to achieve smooth scrolling background gradient effect

  1. Create a container with a scrolling effect.
<div class="container">
  <!-- 网页内容 -->
</div>
.container {
  height: 100vh;
  overflow-y: scroll;
}

The container uses vh units to set the height to the viewport height, and sets the overflow-y attribute to scroll to achieve a vertical scrolling effect.

  1. Add background gradient effect.
.container {
  background: linear-gradient(to bottom, #000000, #ffffff);
}

In the CSS style of the container, set the background to a linear gradient with a starting color of black (#000000) and an ending color of white (#ffffff). The direction is set to to bottom to represent a gradient from top to bottom.

  1. Add scroll event listener.

Add a scroll event listener to the container through JavaScript to update the position of the background gradient during the scrolling process.

const container = document.querySelector('.container');

container.addEventListener('scroll', () => {
  const scrollTop = container.scrollTop;
  const scrollHeight = container.scrollHeight;
  const windowHeight = window.innerHeight;
  const progress = (scrollTop / (scrollHeight - windowHeight)) * 100;

  container.style.backgroundPositionY = `${progress}%`;
});

In the callback function of the scroll event, we obtain the scroll position scrollTop of the container, the total height of the container scrollHeight, the viewport height windowHeight, and update the position of the background gradient according to the scroll progress. By calculating the proportion progress, the smooth scrolling effect of the background gradient position is achieved. Finally, apply the updated variable to the background gradient by setting the backgroundPositionY property.

4. Complete code example

<!DOCTYPE html>
<html>
<head>
  <title>平滑滚动背景渐变效果</title>
  <style>
    .container {
      height: 100vh;
      overflow-y: scroll;
      background: linear-gradient(to bottom, #000000, #ffffff);
    }
  </style>
</head>
<body>
  <div class="container">
    <!-- 网页内容 -->
  </div>

  <script>
    const container = document.querySelector('.container');

    container.addEventListener('scroll', () => {
      const scrollTop = container.scrollTop;
      const scrollHeight = container.scrollHeight;
      const windowHeight = window.innerHeight;
      const progress = (scrollTop / (scrollHeight - windowHeight)) * 100;

      container.style.backgroundPositionY = `${progress}%`;
    });
  </script>
</body>
</html>

The above are the specific steps and code examples to achieve the smooth scrolling background gradient effect of web pages through pure CSS. Through the above methods, you can add dynamic background gradient effects to your website to enhance the user's browsing experience. Hope this article can be helpful to you.

The above is the detailed content of How to achieve smooth scrolling background gradient effect on web pages through pure CSS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn