Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DIV淡入另一个DIV_Javascript_Jquery_Html_Scroll_Opacity - Fatal编程技术网

Javascript DIV淡入另一个DIV

Javascript DIV淡入另一个DIV,javascript,jquery,html,scroll,opacity,Javascript,Jquery,Html,Scroll,Opacity,如果用户向下滚动一个页面,顶部的DIV消失在它下面的DIV中,等等,直到它消失在白色背景中,你会怎么做 以下是我的一点尝试: 为了更好地说明这一点,它托管在一个临时服务器上: 但是div并没有完全衰减到0,它们衰减到接近0的数字,所以我觉得我的数学是错的。 我还发现,如果用户滚动太快(按page down等),您可以看到所有3个图像都消失在另一个图像中 谢谢 我认为,因为scrollY%scrollRange永远不等于scrollRange,所以您的scrollPercent永远不等于0。您可以

如果用户向下滚动一个页面,顶部的DIV消失在它下面的DIV中,等等,直到它消失在白色背景中,你会怎么做

以下是我的一点尝试:

为了更好地说明这一点,它托管在一个临时服务器上:

但是div并没有完全衰减到0,它们衰减到接近0的数字,所以我觉得我的数学是错的。 我还发现,如果用户滚动太快(按page down等),您可以看到所有3个图像都消失在另一个图像中


谢谢

我认为,因为
scrollY%scrollRange
永远不等于scrollRange,所以您的scrollPercent永远不等于0。您可以使用
scrollPercent=Math.round(scrollPercent*10)/10计算滚动百分比后,将其四舍五入为0。
此外,滚动过快导致的问题似乎是由has函数引起的,用slice函数替换它对我来说很好(我不明白为什么)。这是更新后的代码

$(document).scroll(function(e) {
var scrollY = $(window).scrollTop();
var scrollPercent =(scrollRange - scrollY % scrollRange) / scrollRange;
var divIndex = Math.floor(scrollY / scrollRange);
target.slice(0,divIndex).css('opacity', 0);
target.eq(divIndex).css('opacity', scrollPercent);
target.slice(divIndex+1).css('opacity', 1);
});

这在不舍入百分比的情况下工作。希望它能帮上忙,因为你的scrollPercent永远不等于0。您可以使用
scrollPercent=Math.round(scrollPercent*10)/10计算滚动百分比后,将其四舍五入为0。
此外,滚动过快导致的问题似乎是由has函数引起的,用slice函数替换它对我来说很好(我不明白为什么)。这是更新后的代码

$(document).scroll(function(e) {
var scrollY = $(window).scrollTop();
var scrollPercent =(scrollRange - scrollY % scrollRange) / scrollRange;
var divIndex = Math.floor(scrollY / scrollRange);
target.slice(0,divIndex).css('opacity', 0);
target.eq(divIndex).css('opacity', scrollPercent);
target.slice(divIndex+1).css('opacity', 1);
});

这在不舍入百分比的情况下工作。希望能有所帮助

非常感谢!你太棒了;这对我也有用。非常感谢!你太棒了;这对我也有用。