使用Vanilla JS在小屏幕上滚动动画问题

时间:2019-09-04 16:19:38

标签: javascript animate-on-scroll

我已经为我的网站创建了一个动画,以在使用Vanilla JS滚动时更改某些元素(例如其背景色)。为此,我使用了window.onscroll属性,并在window.scrollY到达特定位置时触发了动画,我的代码是:

window.addEventListener('scroll', () => {
   if (window.scrollX >= 1000) {
      box.style = "background:red"
   }
})

当我以大屏幕分辨率进行编辑时,它看起来很棒,但是如果我查看笔记本电脑上的页面,动画会变得混乱,因为屏幕的innerWidthinnerHeight不同。我想在到达页面的特定部分时动态触发动画,而不必担心滚动位置。

有人对我如何解决此问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我认为使用getBoundingClientRect()可以解决您的问题。 您基本上是这样的:

var my_box = document.getElementById('my-box');
var rect = my_box.getBoundingClientRect();

rect变量现在包含一个对象,该对象包括一个top和一个left属性,其属性值相对于视口。

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect