在Scroll上做点什么

时间:2016-06-27 08:26:43

标签: javascript jquery html performance scroll

如果我想在滚动上为元素设置动画,最好的方法是什么? 因为我注意到滚动时它有点滞后。 我应该像这样添加这个类吗?

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSInteger restrictedLength=500;

        NSString *temp=textView.text;
        NSLog(@"hekk %ld",[[textView text]length]);
        if(([[textView text] length] > restrictedLength)&&(range.length == 0)){
            return NO;
        }
        return YES;
    }

或制作这样的旗帜。

$(window).scroll(function() {
   if($(this).scrollTop() > 500) {
     $(".element").addClass("animateElement");
   }
}

1 个答案:

答案 0 :(得分:2)

在滚动上设置动画效果的最佳方法是制作最优化的代码。例如,你可以使用Vanilla JS和你描述的标志,并在滚动之前查询元素,这会产生类似的结果:



var animateFlag = true
var element = document.querySelector(".element")

window.addEventListener("scroll", function() {
  if(this.pageYOffset > 0) {
    if(animateFlag) {
      element.classList.add("animateElement");
      animateFlag = false;
    }
  }
})

.element {
  background: yellow;
  width: 200px;
  height: 200px;
  margin-bottom: 1000px;
}

.element.animateElement {
  background: red;
}

<div class="element"></div>
&#13;
&#13;
&#13;