将scrollTop转换为增量值

时间:2017-02-20 23:30:35

标签: javascript math

这实际上只是一个数学问题,但我无法找到如何做到这一点。我想使用scrollTop慢慢减少对象的opacity。因此,当scrollTop == 1,我希望opacity1scrollTop == 2时,我希望opacity.99scrollTop == 3opacity .98。有人可以帮助我做数学吗?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果您想要答案正是您所要求的,那么您可以执行以下操作:

var position = window.pageYOffset;
var opacity = Math.max(0, 1 - (position / 100));

然而,正如其他评论者所建议的那样,在滚动100px后,不透明度会达到0。

答案 1 :(得分:0)



var doc = document.documentElement;

window.onscroll = function() {
var value = window.scrollY / (doc.offsetHeight - doc.clientHeight);
document.getElementById("preview").style.opacity = 1 - value;
}

body {
  height: 1000px;
}

#container {
  background: linear-gradient(45deg, #eee 25%, transparent 26%, transparent 75%, #eee 76%), linear-gradient(-45deg, #eee 25%, transparent 26%, transparent 75%, #eee 76%);
  background-color: #444;
  background-size: 10px 10px;
  position: fixed;
  width: 100px;
}

#preview {
  height: 100px;
  background: red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
  <div id="preview"></div>
</div>
&#13;
&#13;
&#13;