Javascript DIV淡入另一个DIV
如果用户向下滚动一个页面,顶部的DIV消失在它下面的DIV中,等等,直到它消失在白色背景中,你会怎么做 以下是我的一点尝试: 为了更好地说明这一点,它托管在一个临时服务器上: 但是div并没有完全衰减到0,它们衰减到接近0的数字,所以我觉得我的数学是错的。 我还发现,如果用户滚动太快(按page down等),您可以看到所有3个图像都消失在另一个图像中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。您可以
谢谢 我认为,因为
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);
});
这在不舍入百分比的情况下工作。希望能有所帮助非常感谢!你太棒了;这对我也有用。非常感谢!你太棒了;这对我也有用。