Существует ли объединенный способ знать, видим ли узел или нет?

Я хотел бы смочь знать, видим ли узел и представляется на экране. Насколько я знаю, существует по крайней мере 3 стандартных и простых способа сделать узлы HTML не видимыми:

  • Установка opacity: 0;
  • Установка display: none;
  • Установка visibility: hidden.

Я мог проверить на просто эти три, но я - испуганные люди, может стать творческим когда дело доходит до способов скрыть содержание:

  • Отправка элемента вне экрана с помощью отрицательных полей;
  • Используя ширину или высоту 0 и скрывающий переполнение;
  • намного больше я доверяю людям для разработки.

Таким образом, я задавался вопросом, существует ли стандартный способ определить, представляется ли узел на экран. Я вполне уверен, все главные браузеры определяют его, чтобы себя ускорил рисунок, поэтому возможно, это так или иначе выставляется.

8
задан zneak 17 June 2010 в 21:32
поделиться

2 ответа

Если это ваша страница, тогда вы можете получить большую часть контроля, и это станет вопросом применения стандартов, которые вы внедряете. Если это чужая страница (например, если вы пишете букмарклет), то количество переменных чрезвычайно велико.

Видимость означает разные вещи для людей и браузеров. Браузеру необходимо знать контекст и макет страницы, а также то, занимает ли объект место, что верно даже в случаях непрозрачности: 0 и видимости: скрыто , что приведет к именно поэтому jQuery работает именно так.

Таким образом, вам нужно будет посмотреть на конкретный элемент, включая его поля, отступы, атрибуты переполнения, видимость, отображение, все настройки непрозрачности, проверьте цвет: rgba (*, *, *, 0) тоже думаю. Затем вам нужно просмотреть каждый родительский объект до самого документа.

0
ответ дан 6 December 2019 в 02:24
поделиться

Вы можете попробовать использовать модификатор jQuery : visible .

http://api.jquery.com/visible-selector/

К сожалению, я совершенно уверен, что это не принимает во внимание ни один из «сложных» случаев, о которых вы говорите.

1
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: