javascript - 在用户滚动时沿渐变更改背景颜色

标签 javascript html css background-color

我试图让页面的背景颜色在用户滚动时在黑色和白色之间的渐变上发生变化。如果有意义,颜色将取决于用户当前在页面上滚动到的位置?这是我已经拥有的一些代码,但是唯一的问题是当用户没有滚动到任何地方时,网页不是黑色的。

function scroll(){
	var body = document.body,
		  html = document.documentElement;
	var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
	var color = Math.round(((body.scrollTop + html.offsetHeight) / height) * 255);
	body.style.backgroundColor = "rgb("+color+","+color+","+color+")";
}
html{
	height: 100%;
}
body{
	height: 200%;
	background: rgb(126,126,126);
}
<!DOCTYPE html>
<html lang="en" dir="ltr">

  <body onscroll="scroll()">
    <script src="assets/JS/ScrollEffect.js"></script>
  </body>

</html>

最佳答案

是这样的吗?

$(window).on('scroll', function(){
  var s = $(window).scrollTop(),
      d = $(document).height(),
      c = $(window).height();

  var scrolledArea = (s / (d - c));
  $("div").css("opacity", scrolledArea);
})
body{
  margin: 0;
}

div{
  height: 500vh;
  background: #000;
  opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>

</div>

关于javascript - 在用户滚动时沿渐变更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169061/

相关文章:

javascript - 使用覆盖 hack 隐藏 iOS 7 中的工具栏

jquery - css-bootstrap- 如何连续制作响应式图像

javascript - 页面滚动定义的对象高度

javascript - 使用 document.url.match 重定向

javascript - 创建带有滚动条的下拉列表

html - UI-Bootstrap Carousel 不会与我的 Angular 应用程序合作。为什么?

javascript - 中断jQuery延迟函数

javascript - 如何让浏览器在 Laravel 应用程序中下载更新的 JS 文件

html - 某些页面仅忽略一条 CSS 规则

css - 启用将 Bootstrap 字形添加到输入