当您滚动到元素时,我希望它们逐渐消失。不足之处是我需要纯香草javascript ...绝对没有jquery。我在网上找到的所有东西都在jquery中,这很挣扎。我正在为动画使用tweenMax。谢谢您的帮助。

    if(window.scrollY > 550){
    TweenMax.staggerFromTo(newProduct, 1, {opacity:0}, {opacity:1}, 0.5);
}

最佳答案

在这里,我使用CSS淡入/淡出。

在滚动时,我检查元素是否为视口,如果是,则添加类inview,否则将其删除。如果要使其仅淡入,可以更改选择器以排除inview类。



let section = document.createElement('section');
document.body.appendChild(section);
for (let x = 1; x <= 100; x ++) {
  let d = document.createElement('div');
  d.innerText = `Hello there div line ${x} of 100`;
  section.appendChild(d);
}

function inView (el) {
  var sb = section.getBoundingClientRect();
  var eb = el.getBoundingClientRect();
  return !((eb.top + eb.height < 0) || (eb.top > sb.height));
}

function updateInView() {
  for (x of document.querySelectorAll('div')) {
    if (inView(x)) x.classList.add('inview')
    else x.classList.remove('inview');
  }
}

section.onscroll = updateInView;

updateInView();

div {
  opacity: 0.0;
  transition: opacity 1s;
}

div.inview {
  opacity: 1;
}

section {
  width: 100%;
  height: 100%;
  overflow: auto;
  background: black;
  color: yellow;
}

html,
body {
  height: 100%;
  padding: 0;
  margin: 0;
}

09-25 19:28