Я хотел бы смочь знать, видим ли узел и представляется на экране. Насколько я знаю, существует по крайней мере 3 стандартных и простых способа сделать узлы HTML не видимыми:
opacity: 0
;display: none
;visibility: hidden
.Я мог проверить на просто эти три, но я - испуганные люди, может стать творческим когда дело доходит до способов скрыть содержание:
Таким образом, я задавался вопросом, существует ли стандартный способ определить, представляется ли узел на экран. Я вполне уверен, все главные браузеры определяют его, чтобы себя ускорил рисунок, поэтому возможно, это так или иначе выставляется.
Если это ваша страница, тогда вы можете получить большую часть контроля, и это станет вопросом применения стандартов, которые вы внедряете. Если это чужая страница (например, если вы пишете букмарклет), то количество переменных чрезвычайно велико.
Видимость означает разные вещи для людей и браузеров. Браузеру необходимо знать контекст и макет страницы, а также то, занимает ли объект место, что верно даже в случаях непрозрачности: 0
и видимости: скрыто
, что приведет к именно поэтому jQuery работает именно так.
Таким образом, вам нужно будет посмотреть на конкретный элемент, включая его поля, отступы, атрибуты переполнения, видимость, отображение, все настройки непрозрачности, проверьте цвет: rgba (*, *, *, 0)
тоже думаю. Затем вам нужно просмотреть каждый родительский объект до самого документа.
Вы можете попробовать использовать модификатор jQuery : visible
.
http://api.jquery.com/visible-selector/
К сожалению, я совершенно уверен, что это не принимает во внимание ни один из «сложных» случаев, о которых вы говорите.