在复杂的Web应用程序中,我必须检查某些HTML元素是否在屏幕上部分/完全可见。
有多种原因导致某些元素在屏幕上不可见:
我在堆栈溢出中发现的内容(例如How to Check if element is visible after scrolling?,http://stackoverflow.com/questions/123999/how-to-tell-if-a-dom-element-is-visible-in-the-current-viewport等)正在基于上述一个或两个原因进行简单的检查,但几乎没有尝试检测所有我排队的原因。
在我现在开始手动执行所有操作之前,包括所有极端情况:是否可以通过javascript使用与原因无关的检查,这将为我提供有关元素是否在渲染结果中可见的反馈?
就目前而言,我能想到的最简单,最可靠的方法是(尚未测试)修改元素的background-color属性,在前后使用html2canvas库并检查是否结果图像匹配。
“解决方法”之外还有什么吗?
(更新:我已经测试了我的html2canvas方法,不仅速度很慢,而且还给出了误报,因为即使背景颜色改变的元素根本不可见,图像也不总是一样。)< / p>