簡體   English   中英

滾動時網頁視差背景抖動

[英]Webpage parallax background jitters when scrolling

我編寫了我的第一個網站,我希望在滾動時在我的背景上產生視差效果。 它可以工作,但在某些計算機和/或某些瀏覽器上和/或某些 window 尺寸上,滾動時背景會上下抖動,同時仍會保持視差效果。 我無法弄清楚到底是什么組合導致了這個問題,這似乎是不一致的。

在 css 中,我的頁面主體上有一個垂直重復的背景圖像(六邊形圖案):

body {
   background: #fff9ed;
   background-image: url("hexagon-side.png"), url("hexagon-side.png");
   background-position: 0px 0px, 100% 0px;
   background-repeat: repeat-y, repeat-y;
}

然后我使用以下 javascript 創建視差效果,使六邊形在滾動時比其他元素移動得慢:

window.addEventListener('scroll', function() {
   let scrollTop =  window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
   var currentOffset = '0px ' + scrollTop / 1.2 + 'px, 100% ' + scrollTop / 1.2 + 'px';
   document.getElementById("parallax").style.backgroundPosition = currentOffset;
});

最后我在 html 文件中的身體有 id 視差: <body id="parallax">

有沒有辦法解決這個問題? 有沒有更好的方法來達到同樣的效果? 這可能是什么原因造成的?

添加

background-attachment: fixed;

到 css 主體,並將 currentOffset 更改為

var currentOffset = '0px ' + scrollTop / -3 + 'px, 100% ' + scrollTop / -3 + 'px';

修復了抖動問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM