向用户显示元素时会触发哪个事件?

时间:2012-05-25 20:39:39

标签: jquery javascript-events deferred-rendering

我有一个包含大量图片的页面。如果用户还没有向下滚动到图像所在的位置,那么让浏览器加载它们是没有意义的。 我想将img元素绑定到一个事件处理程序,当事件包含div可见时(在用户滚动得足以使元素在视口中)的情况下触发该事件处理程序。然后,此处理程序将重写src属性,并且图像将加载。

我正在寻找的活动是什么?

2 个答案:

答案 0 :(得分:1)

没有原生的jQuery事件可以满足您的需求。您需要使用scroll事件来获取滚动位置,获取可见图像并加载它们。

已经有插件为您执行此操作。也许你想要的是jQuery插件:http://code.google.com/p/jquery-appear/

这可能与此问题重复:Make images load when they enter visible section of browser?

答案 1 :(得分:0)

$(window).scroll(function(){

 // if user has scrolled to 250px 
 if ($(this).scrollTop() > 250){ 
    // load your images,
 } 
})

更好的方法是在底部放置div并使用mouseenter事件来检测用户是否需要更多图片。

$('#the_bottom_div').mouseenter(function(){
   // If user has placed mouse on bottom,load images (like facebook does)
})