javascript - 使用 jquery 检测元素的 'scrollIntoView' 调用

标签 javascript jquery

我有一个元素可以触发函数“scrollIntoView()”。现在我必须在触发该事件时检测并捕获该事件。

我这样触发它:

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

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

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

但不幸的是它不起作用。

这可能吗?它会触发哪个事件?

最佳答案

$.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 
}

关于javascript - 使用 jquery 检测元素的 'scrollIntoView' 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267932/

相关文章:

javascript - 使用 jQuery 读取 XML

javascript - 单击 javascript 函数时的代码不起作用?

javascript - ckeditor 焦点不起作用

php - 如何让用户以表单形式提交文本并使用 AJAX 将其输入到数据库并显示在同一页面上?

jquery - 切换附加到最近类的 div 元素

javascript - 如何在动态 javascript 表中的值更改时播放声音?

javascript - 重新加载 KeyDown 和 Click 事件后仅在第二次单击后有效

javascript - 使用 javascript 设置 HTML 类名

javascript - 正确的 JavaScript 对象

javascript - 我如何使用 AJAX 下载 jasper 报告的 PDF 存档?