如果元素完全在视口中(实时),则执行一个函数
我试图在视口中使用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执行。
可爱的把戏。