Forum Moderators: not2easy
Right now I have a client who gets this flickering in IE from my CSS rollovers. They want it recoded using only Javascript. I'm wondering if there's another way. Any advice? I'm assuming that lots of professional sites are now out there that use CSS rollovers so presumably they'd need to get over this problem?
the Flicker itself is caused by an IE browser setting: if you choose "Every visit to page" in
Tools » Internet Options... » Temporary Internet Files » Settings...
Changing that setting to "automatically" will fix all flickers, but that's a user setting and not something you can control unless your client wants to do that. I don't think "Every Visit to Page" is the Shipping default for IE, I thought it was meant to be set to "Automatically" but it does seem a lot of non-devs suffer this flicker so what do I know!.
Using a second image, or double buffering is a slight change to Pixy's method, (whose doesn't seem to work all the time). It which will not fix the flicker but it should make it virtually unnoticeable, instead there will just seem like a very slight delay on hover but no flicker..
Use your existing background image but use it twice: both on the link and on the element containing the link.
eg.
<li><a>
the one on the container will not move and will show the "non hovered" state all the time, then when the link is hovered on and has it's little flicker moment while changing to the hovered state the <li> background will temporarily show through looking like the image hasn't changed..
it seems to be the best solution unless you want to change all your clients browser setting ;)
Anyway HTH
Suzy