【问题标题】:Detect a 'scrollIntoView' call of an element with jquery [duplicate]使用 jquery 检测元素的“scrollIntoView”调用 [重复]
【发布时间】:2018-01-15 17:25:13
【问题描述】:

我有一个触发函数“scrollIntoView()”的元素。现在我必须在它被触发时检测并捕获它。

我是这样触发的:

$('.element').scrollIntoView();

所以我尝试用 jquery 来捕捉它,如下所示:

$('.element').on('scroll', function() { // STUFF });
$('.element').on('scrollIntoView', function() { // STUFF });

但不幸的是,它不起作用。

这甚至可能吗?它触发了哪个事件?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:
    $.fn.inView = function(){
          var win = $(window);
          var obj = $(this);
          var scrollPosition = win.scrollTop();
          var visibleArea = win.scrollTop() + win.height() ;
          var objEndPos = (obj.offset().top + obj.outerHeight());
          return(visibleArea >= objEndPos && scrollPosition <= objEndPos ? true : false)
      };
    

    这会奏效。但是在卷轴里面你可以做

    if(element.inView()) {
      do this 
    }
    

    【讨论】:

    猜你喜欢
    • 2012-02-05
    • 1970-01-01
    • 2020-08-24
    • 2010-11-08
    • 2015-02-16
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多