我想知道如何才能在屏幕上显示当前显示的控件。
例如:
如果我有一个滚动条,阻止用户看到所有内容 在页面下方,我想制作一个选择器,它只选择用户现在可以在屏幕上看到的内容。如果我可以选择他没有看到的一切,那也很好。
这可能吗?怎么样?
由于
答案 0 :(得分:2)
您可以计算用户可以看到的偏移量(例如,当用户滚动时):
var top = $(window).scrollTop();
var bottom = top + $(window).height();
然后,您可以看到元素是否在此范围内。
$('*').each( function() {
var el = $(this);
var offsetTop = el.offset().top;
var inView = offsetTop >= top && offsetTop <= bottom;
el.addClass( inView ? 'in-view' : 'out-of-view' );
} );
显然,这样做有一些明显的缺点。根据您对此信息的处理方式,您只能选择input
或其他可能有用的内容。
答案 1 :(得分:0)
我不知道是否有一个简单或优雅的解决方案。您可以做的是计算所有元素的offset position和scroll offset以找出哪些元素可见。如果你需要检查很多元素,这可能会变得昂贵,但是否则可以很好地工作。