我使用jQuery scrollTop的()值來改變頁面滾動的元素透明度jQuery的scrollTop的()精度快速滾動頁面時(避免像素損失)
$(document).on('scroll', function(){
if($(document).scrollTop() >= 1){
$('#elem').css({'opacity': ($(document).scrollTop() * 0.02)});
}
});
它工作正常,但問題是,如果我快速滾動頁面會「跳過」很多像素,導致一個醜陋的效果,因爲返回的像素是例如
0
30
50
80
90
...
,而不是
0
1
2
3
4
就像當我慢慢地滾動...
而且其他時間我有同樣的問題,在這裏我需要平滑值,但這種「像素跳躍」的行爲複雜化東西...
我該如何解決這個問題?
不幸的是,這是不可能的。出於性能原因,每次更新UI時都會讀取該值,而不是每個像素滾動時的值。這意味着像素將在更新之間跳過。對此你無能爲力。爲了解決這個問題,你可以在'opacity'值上使用CSS''transition'來使調整更順暢 –
哦,那聽起來很糟糕...... :(此時我不知道該怎麼做 – neoDev