如果元素完全在视口中(实时),则执行一个函数

我试图在视口中使用jQuery插件来检测元素是否在视口中。

它有效,但不会更新。

他推荐了ScrollStop 。 我添加它,但它不起作用。

我只把我的代码放在这里:

$(document).ready(function() { $(window).bind("resize scrollStop", function() { $("div").withinViewport().append("hi"); }); }); 

(另外,它使用的是bind方法,所以它有点过时了……)

所以,它可能很简单,但我没有让它工作。

我是jQuery和javascript的新手。所以它可能非常简单。

这是包含代码和所有内容的网站

编辑:适用于resize! 但不是滚动。

从这里

jQuery – Scroll Stop上的绑定事件

 $.fn.scrollStopped = function(callback) { $(this).scroll(function(){ var self = this, $this = $(self); if ($this.data('scrollTimeout')) { clearTimeout($this.data('scrollTimeout')); } $this.data('scrollTimeout', setTimeout(callback,250,self)); }); }; $(window).scrollStopped(function(){ $("div").withinViewport().append("hi"); }); 

这是如何工作的。

该函数首先清除与数据元素scrollTimeout相关的任何超时。

它认为在传入函数的情况下创建一个新元素,超时为250毫秒。

因此,当滚动移动时,它总是从运行中清除该function并将其重置为“稍微”运行。

当滚动停止时 – 它无法清除该function,因此该function执行。

可爱的把戏。