jQuery 做一些事情直到元素到达顶部

jQuery do something until element hits top

我使用以下脚本在滚动时模糊了 div。将它包装成告诉它的最佳方法是什么:只执行此操作直到#element 到达视图顶部然后停止它。类似于 max-val 的东西。

$(window).on('scroll', function () {
    var blurrad = $(document).scrollTop()
    blurrad = blurrad / 100;
    $(".videodummy").css({"-webkit-filter": "blur("+blurrad+"px)","filter": "blur("+blurrad+"px)" })     
});

更新: 首先,感谢您的帮助。我试着这样做:

var topdist = $('#indicator').offset().top 

while ( topdist > 0 ) {   
$(window).on('scroll', function () {
  var blurrad = $(document).scrollTop()
  blurrad = blurrad / 100;
  $(".videodummy").css({"-webkit-filter": "blur("+blurrad+"px)","filter": "blur("+blurrad+"px)" })     
 });

 });

因此,如果带#indicator 的div 达到顶部,它应该停止模糊,但是这根本不起作用。

根据您的尝试:

var topDist = $('#indicator').offset().top;

  $(window).on('scroll', function () {

    topDist = $('#indicator').offset().top;

    if (topDist > 0) {

      var blurrad = $(document).scrollTop();

      blurrad = blurrad / 100;

      $(".videodummy").css({"-webkit-filter": "blur("+blurrad+"px)",
                            "filter": "blur("+blurrad+"px)" });

    }  
  });

我会暂时反对,因为它真的不需要。而是使用 if 语句进行检查。

$('#element').offset().top

会给你到顶部的距离