как я могу получить координаты скрытого элемента?.offset() не поддерживает использование скрытых элементов.
любые подсказки?
спасибо!
как я могу получить координаты скрытого элемента?.offset() не поддерживает использование скрытых элементов.
любые подсказки?
спасибо!
Если на ваш элемент был вызван .hide()
, или если он получил display:none
в css, браузер вообще не беспокоится о его рендеринге. В этом случае ответ не напрямую. В последних jQueries вы даже не можете получить ширину или высоту.
С другой стороны, если вы .show()
элемент, то .hide()
он перед циклом выполнения (событие, в котором происходит переход, когда больше нет кода для запуска для этого события), браузер будет вынужден передать страницу, и вы сможете получить ее смещение между тем, когда она будет показана и скрыта, но она не будет переименована, поэтому ваши пользователи не будут видеть всплеск, и вы не потеряете столько производительности, сколько вы может подумать.
Вы можете получить координаты элемента visibility:hidden
, но элемент display:none
исключен из дерева рендеринга. Таким образом, его позиция undefined.
Помимо быстрого показа и выполнения действий и скрытых процедур, возможно просто использовать маску загрузки, чтобы притворяться, что экран (или его часть) невидим.
Это произошло, когда я работал на карте с скрытыми элементами. Мне нужно было прочитать css-позиции/смещения без отображения этих элементов. Я придумал три возможных метода:
загружать маску по карте, так что карта не отображает скрытые элементы и не читает смещения (проблема: overlay также скрывает родительский элемент (карту)). Это лучше всего работает, если нет родительского элемента, который требует отображения.
изменить z-индекс элементов, которые скрыты, чтобы они заходили за родительский элемент, отображали и читали значения, скрывали их и меняли z-index на оригинал.
используйте отдельные переменные данных для стилей CSS, чтобы они были частью элемента. Это хорошо работает, если элементы имеют фиксированные/абсолютные позиции против окна или определенного элемента, поскольку css-позиции/смещения не будут меняться в зависимости от размера окна/элемента. Это хорошо работает в моем случае, поскольку я работал с элементами абсолютно против окна (полноэкранное/-window-приложение).
Другие методы, предлагаемые пользователями, тоже работают, но все зависит от того, над чем вы работаете.