Javascript Js-将scrollTop转换为不透明度级别

Javascript Js-将scrollTop转换为不透明度级别,javascript,Javascript,我有一个函数,它将div的不透明度级别设置为其父级的当前scrollTop $('.container').scroll(function() { var this_panel_cont_ = $(this).get(0); var scrolldepth_ = this_panel_cont_.scrollTop; var fade_out_ = parseInt(scrolldepth_ / 10) / 10; $('

我有一个函数,它将
div
的不透明度级别设置为其父级的当前
scrollTop

$('.container').scroll(function() {
    var this_panel_cont_    = $(this).get(0);
    var scrolldepth_        = this_panel_cont_.scrollTop; 
    var fade_out_           = parseInt(scrolldepth_ / 10) / 10;
    $('.panel').css({'opacity':fade_out_});
});
我得到一个最小
0.0
到最大
3.5
的输出,但我需要最大
1.0
,因为不透明度从
0.0
1.0


非常感谢

您可以像这样为淡出变量添加if语句

$('.container').scroll(function() {
    var this_panel_cont_    = $(this).get(0);
    var scrolldepth_        = this_panel_cont_.scrollTop; 
    var fade_out_           = parseInt(scrolldepth_ / 10) / 10;
    if(fade_out_ > 1){fade_out_ = 1;} else{fade_out_ = parseInt(scrolldepth_ / 10) / 10;}
    $('.panel').css({'opacity':fade_out_});
});

我还没有尝试过这段代码,但它应该可以完成这项工作。

您可以计算元素的滚动百分比,并使用它:

var e = document.getElementsByClassName("container")[0];
$(".container").scroll(function(){
    var percent = e.scrollTop / (e.scrollHeight - e.clientHeight);
    $(".panel").css({ "opacity": percent });
});
(我不知道
scrollHeight
clientHeight
对应的jQuery函数,这就是我使用
document.getElementsByClassName
的原因。)


演示:

@pyjama没问题!如果这真的解决了你的问题,请考虑答案:“难道没有一个数学公式,我也可以用在其他情况下,我没有让我们说<代码> clieTeTue< /Cord>?”PyjaMaLeNeTeIt基本上是元素的内部高度。所有元素都应该有这个属性。是的,我理解,但如果我根本不处理元素,那会怎么样?@pyjama,比如什么?如果您想使该计算适应整个文档,您可以使用文档高度作为滚动高度,使用窗口高度作为clientHeight。是一个例子。非常感谢,但是从
1.0
3.5
的滚动深度如何?您的解决方案不会准确地淡出
div
,但速度快了约70%。