如何确定HTML控件是否显示在页面中
How to determine if HTML Control is being displayed in page?
我想知道如何在此时此刻只获取屏幕中显示的控件。
例如:
如果我有一个滚动条,它阻止用户查看所有内容在页面下方,我想制作一个选择器,它只选择用户现在可以在屏幕上看到的内容。如果我能选择他看不到的所有东西,那也太好了。
这可能吗?怎样
感谢
您可以计算用户可以看到的东西的偏移量(比如,当用户滚动时):
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
或任何可能有帮助的内容。
我不知道是否有一个简单或优雅的解决方案。您可以计算所有元素的偏移位置和滚动偏移,以找出哪些元素可见或不可见。如果你有很多元素要检查,这可能会变得很昂贵,但在其他方面可能会很好地工作。
相关文章:
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 是否可以用JavaScript显示等效的文件夹对话框
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 是否可以将JXBrowser显示的JS确认对话框的结果返回到调用它的JS部分
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 隐藏/显示下面的分区根据是否选择某个选项进行选择
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 是否可以使用不同投影的另一个WMS层显示OSM数据
- 检查资源的id是否在ng重复中显示的另一个资源的id列表中
- 如何在将鼠标悬停在提交/锚点上时检查复选框是否已选中,并显示提示用户这样做的警报
- 在Chrome扩展程序中,是否可以截屏并在弹出窗口中显示屏幕
- 交换 img src 或显示/隐藏多个图像是否更快
- Javascript检查url是否存在并检查其上显示的一些信息
- 数据仅用于显示是否触摸输入 - AngularJs
- Javascript在单击外部时弹出隐藏,并显示是否单击了链接
- 弹出标记不显示是否已单击标记
- 显示是否所有输入都为空
- 显示是否隐藏jQuery
- 使用 Javascript 检查显示是否为无