I've got a page with a header and a content.
The header has position: fixed; height: 200px
, the content is below.
In the header I have a link <a href="#work" ...>
. In the content there is a <div id="work">
. When I click the link, the browser scrolls to the work
div - the problem is half of the content is covered (remains underneath) the header, because it has position fixed!
I then used the jQuery anchorAnimate plugin, that uses jQuery animate
. Here I slightly modified the plugin to take into account that 200px-offset. This worked out fine, in Chrome and Safari.
Not in Firefox, however. The plugin works ok, slides to the correct position, until it calls window.location.hash = element
. Firefox then falls back to the default behaviour of setting the element at the top of the page (thus ignoring the offset due to the header - the first problem I described).
I know Firefox 3.6 implements an onhashchange
listener. I overrode as per the documentation window.onhashchange = function(){}
, which it does call, but it keeps on firing the default action of setting the elements at the top of the window, ignoring my header. How can I fix this?
(Otherwise, would it be possible to set somewhere a window offset in these "fixed header" cases?)