They are basically using CSS.
It is likely a div that has its "display" set to "none" with a "z-index" greater than that of the underlying content.
You then just use javascript to change the "display: none;" to "display: block"
I would guess they are also using the "position", "top", and ""left" elements to get it to align where they want it. Of course they maybe using javascript to set them also, depending on some other factors.