Get the offset of a hidden element

Simon picture Simon · May 12, 2011 · Viewed 28.8k times · Source

How can I get the coordinates of a hidden element? offset() doesn't support the use for hidden elements. Any hints?

Answer

issa marie tseng picture issa marie tseng · May 12, 2011

If your element has had .hide() called on it, or if it's got display:none in css, the browser doesn't bother rendering it at all. In this case, the answer is not directly. In recent jQueries, you can't even get its width or height.

On the other hand, if you .show() an element, then .hide() it before an execution loop (an event firing through to when there's no more code to run for that event), the browser will be forced to relayout the page and you'll be able to get its offset between when it's shown and hidden, but it won't be forced to repaint, so your users won't see a blip, and you won't lose as much performance as you might think.