首页 > 解决方案 > 滚动动画的问题,有人有建议吗?

问题描述

我正在尝试制作一个滚动动画与 css snap on scroll 相结合。

我想要做的是只需滚动即可捕捉到下一部分,但还要使用 AOS 库为该部分设置动画。但是 AOS 库在与 css snap 方法结合使用时不起作用。

这是我的代码,有人知道如何使它工作吗?

https://codesandbox.io/s/zealous-ives-4ikb3?file=/src/App.js

标签: javascriptcssreactjsanimationscroll

解决方案


你想要这样的动画吗?

<!DOCTYPE html>
<html>
<head>
<style>
.header {
  position: fixed;
  top: 0;
  z-index: 1;
  width: 100%;
  padding:10px;
  background-color: #f1f1f1;
}
.progress-container {
  width: 100%;
  height: 8px;
  background: grey;
}
.progress-bar {
  height: 8px;
  background: green;
  width: 0%;
}
</style>
</head>
<body>

<div class="header">
  Scroll Indicator - Scroll Down to See The Effect
  <div class="progress-container">
    <div class="progress-bar" id="myBar"></div>
  </div>  
</div>

<div class="content">
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
<p>blablablablablablablablablablablablablablab
</div>

<script>
// When the user scrolls the page, execute myFunction 
window.onscroll = function() {myFunction()};

function myFunction() {
  var winScroll = document.body.scrollTop || document.documentElement.scrollTop;
  var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
  var scrolled = (winScroll / height) * 100;
  document.getElementById("myBar").style.width = scrolled + "%";
}
</script>

</body>
</html> 


推荐阅读