We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

OnMouseOver slow on Firefox 3.5 (seems to be downloading image every time)

Medium Priority
601 Views
Last Modified: 2013-12-07
I have a fairly simple image mouseover set up on a website.  

Everything was working fine but now that I've upgraded to firefox 3.5 the image change takes a long time.  

I'm pretty sure that firefox is downloading the image from the server every time you hover over the image. ( I can see "Transferring data from..." in the status bar)

Is there anything I might be able to add to my code to stop this or is it simply a problem with firefox 3.5?  (Firefox 3.0 and IE do not have any problems)

Thanks,
David
<script type="text/javascript" language="JavaScript">
 
CursorOverone = new Image();
CursorOverone.src = "images/box/1b.jpg";
CursorOffone = new Image();
CursorOffone.src = "images/box/1a.jpg";
function ImageRollOverone(direction) {
if(direction == 'over') { document.imageone.src = CursorOverone.src; }
else if(direction == 'off') { document.imageone.src = CursorOffone.src; }
}
CursorOvertwo = new Image();
CursorOvertwo.src = "images/box/2b.jpg";
CursorOfftwo = new Image();
CursorOfftwo.src = "images/box/2a.jpg";
function ImageRollOvertwo(direction) {
if(direction == 'over') { document.imagetwo.src = CursorOvertwo.src; }
else if(direction == 'off') { document.imagetwo.src = CursorOfftwo.src; }
}
CursorOverthree = new Image();
CursorOverthree.src = "images/box/3b.jpg";
CursorOffthree = new Image();
CursorOffthree.src = "images/box/3a.jpg";
function ImageRollOverthree(direction) {
if(direction == 'over') { document.imagethree.src = CursorOverthree.src; }
else if(direction == 'off') { document.imagethree.src = CursorOffthree.src; }
}
CursorOverfour = new Image();
CursorOverfour.src = "images/box/4b.jpg";
CursorOfffour = new Image();
CursorOfffour.src = "images/box/4a.jpg";
function ImageRollOverfour(direction) {
if(direction == 'over') { document.imagefour.src = CursorOverfour.src; }
else if(direction == 'off') { document.imagefour.src = CursorOfffour.src; }
}
CursorOverfive = new Image();
CursorOverfive.src = "images/box/5b.jpg";
CursorOfffive = new Image();
CursorOfffive.src = "images/box/5a.jpg";
function ImageRollOverfive(direction) {
if(direction == 'over') { document.imagefive.src = CursorOverfive.src; }
else if(direction == 'off') { document.imagefive.src = CursorOfffive.src; }
}
CursorOversix = new Image();
CursorOversix.src = "images/box/6b.jpg";
CursorOffsix = new Image();
CursorOffsix.src = "images/box/6a.jpg";
function ImageRollOversix(direction) {
if(direction == 'over') { document.imagesix.src = CursorOversix.src; }
else if(direction == 'off') { document.imagesix.src = CursorOffsix.src; }
}
//-->
</script>
 
 
 
<span onmouseover="ImageRollOverone('over')" onmouseout="ImageRollOverone('off')"><a href="tepco_employment.php"><img name="imageone" src="images/box/1a.jpg" alt="Employment"></a></span><span onmouseover="ImageRollOvertwo('over')" onmouseout="ImageRollOvertwo('off')"><a href="tepco_training.php"><img name="imagetwo" src="images/box/2a.jpg" alt="Training"></a></span><span onmouseover="ImageRollOverthree('over')" onmouseout="ImageRollOverthree('off')"><a href="tepco_implementation.php"><img name="imagethree" src="images/box/3a.jpg" alt="Implementation"></a></span><span onmouseover="ImageRollOverfour('over')" onmouseout="ImageRollOverfour('off')"><a href="tepco_consulting.php"><img name="imagefour" src="images/box/4a.jpg" alt="Consulting"></a></span><!--<span onmouseover="ImageRollOverfive('over')" onmouseout="ImageRollOverfive('off')"><img name="imagefive" src="images/box/5a.jpg"></span>--><span onmouseover="ImageRollOversix('over')" onmouseout="ImageRollOversix('off')"><a href="tepco_resources.php"><img name="imagesix" src="images/box/6a.jpg" alt="Resources"></a></span>

Open in new window

Comment
Watch Question

Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Commented:
Here is a rollover script I use.

Does not seem to give me problems

<td><img src="NORMAL.jpg" onMouseOver="this.src='OVER.jpg'" onMouseOut="this.src=NORMAL.jpg'" border=""  width="" height="" Alt=" "></td>


You can use the same code for each image....

SElvol

Author

Commented:
Well, after reloading the page a few times it seems to do the mouseover faster.  Might have just been a glitch.  

If it happens more I will probably try the preloading of the images.

Commented:
Yea that is pretty much the simplest Preloading image trick I know.

You might want to go ahead and impliment the Preload.
As others may have problems,
What it is. The browser does  not see the rollover until the hover,
the delay is the image downloading.
If it is on the page somewhere else it will be in the cache on your computer.

Also  you can hide images for the next page on the current page with the 1x1px.
So when the next page comes up it has little delay.


Try to put the preload load at the bottom of the page. So it does not slow down the page content load speed.

Selvol
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.