views:

120

answers:

4
+1  Q: 

img not showing

I have the following javascript function to create an image that will show on hover of another image, but the image does not load... just the little symbol that goes in place when it cannot find an image.

What is wrong with this code:

function createimg() 
{ 
   var img = new Image();
   img.src='images/imageoverlay.png';
   img.id = 'span1'; 
   img.style.zIndex = 10;  
   img.style.position = 'absolute';  
   img.style.display='none'; 
   img.style.top = '140px';  
   img.style.padding='10px'; 
   img.style.left='240px';    
   img.className ='dynamicSpan';  
   document.body.appendChild(img); 
}

The image sits in the images subdirectory to this where this code file sits.

+3  A: 

If you set img.style.display to none no image will show up. Thats what you specified, this will hide your image (see css reference: none: The element will generate no box at all).

theomega
but even putting display to 'block', the actual image does not show. something else must be wrong...
Tony
+1  A: 

Right click the "missing image symbol", click "Properties". Look at the URL that it says - it's likely the URL is incorrect. If the current page is in a subfolder the URL might end up wrong.

You probably want to put the exact URL of the image:

img.src='http://yoursite.com/images/imageoverlay.png';
DisgruntledGoat
A: 

Your code worked fine for me (once I changed img.style.display='block';) in both IE and FF - so this either means the URL of the image is incorrect (it should be the path to the image relative to your page - or just use an absolute reference) or you're simply not calling the function that creates the image. (or you're calling it in the wrong place, like the <head></head> before the DOM is ready)

How are you calling the function?

Jason Berry
+1  A: 

The source, when specified in code, is relative to the page.

When specified in CSS, it's relative to the CSS file.

For example, if you have the following structure:

/page.html
/css/style.css
/scripts/script.js
/images/image.png

In page.html:

<img src="images/image.png">

In style.css:

#image { background-image: url(../images/image.png) }

Note the ".."! That means go up a level first, before going down the "images" folder.

In script.js:

img.src = "images/image.png";
Anthony Mills