-1
所以我有一个JS功能,在页面底部显示一个小部件。 JS函数调用服务器来获取显示的信息,但我有一个理论认为大多数特定页面上的人永远不会向下滚动以查看小部件,所以我不想浪费带宽和周期来渲染它如果它不会被看到。有什么方法可以在它进入视图时加载它?如在用户,如果用户滚动到Y然后JS函数加载?如何判断用户是否可以看到页面的一部分?
所以我有一个JS功能,在页面底部显示一个小部件。 JS函数调用服务器来获取显示的信息,但我有一个理论认为大多数特定页面上的人永远不会向下滚动以查看小部件,所以我不想浪费带宽和周期来渲染它如果它不会被看到。有什么方法可以在它进入视图时加载它?如在用户,如果用户滚动到Y然后JS函数加载?如何判断用户是否可以看到页面的一部分?
可能这是你在找什么:
http://www.webresourcesdepot.com/load-content-while-scrolling-with-jquery/
下面是上面的演示页:
http://www.webresourcesdepot.com/dnspinger/
从上面的源代码引用:
这会告诉你用户是否在页面的底部(因此需要加载新的内容)。它采用jQuery.
if ($(window).scrollTop() == $(document).height() - $(window).height())
{
// do your loading content code
}
编辑
如果你的部件是位于其他地方,你可以做这样的事情:
if ($('#widget').position().top == $(window).scrollTop())
{
// do your loading within the widget here
}
这会告诉你,如果滚动位置小部件所在的位置。
很酷,如果它不在页面底部呢?小部件放置在不同页面上的随机位置,因此它可能在中间。 – 2009-10-31 18:53:36
请注意,使用jQuery时,.position()是相对于offsetParent的。所以如果你在一个位置有一个元素:relative或position:absolute元素,你将不得不考虑父元素的位置。如果你不这样做,你会注意到你的position()坐标在页面上太高了。 – rocketmonkeys 2009-10-31 21:07:25