473,396 Members | 1,777 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

OnMouseOver and image maps working across multiple images

31
Hi all.

So: I've put together a page, in which I want several clickable image maps. I've put those together already. The problem with image maps is that they're not very intuitive, so users don't really expect the image to be clickable and accordingly won't even try to. The solution is to have the image highlight whenever the mouse travels over the mapped-out area; I understand that this is quite easy. Some Googling has provided a few solutions.

However, my problem is this: because of the way the page was designed, some of the images themselves are split into separate jpegs; they were sliced up by the designer in Photoshop. What I need your help with is ascertaining whether it's possible to have one mouseover highlight two jpegs. To illustrate, one of the images is of a pig, foal, lamb and chick, with each one image mapped already. To get the required effect I understand that I can create four new images: one with each animal highlighted. Then I can get the image map to show the highlighted version with a tiny bit of scripting. But the pig's ear is cut off, and sits in a different jpeg. Could a mouseover of the 'pig map' in the large jpeg also prompt the ear - a different jpeg entirely - to change as well?

I'm not explaining this very well, I have to admit, but in principle it seems simple. If you need any further explanation I'll be sure to give it another go.

Thanks for reading regardless. If you got this far.
Oct 29 '09 #1
13 5326
gits
5,390 Expert Mod 4TB
it is possible ... of course ... could you please post en example of the code you already have ... so that we have something to work with?

kind regards
Oct 29 '09 #2
Dormilich
8,658 Expert Mod 8TB
@seegoon
I’d try to change the mouse pointer shape (hand), so that is represents a link.
Oct 29 '09 #3
seegoon
31
@Dormilich
It seems to do that anyway. But I think the problem still remains - it's not obvious enough in my eyes.
Oct 29 '09 #4
seegoon
31
Here's a really stripped-down version of what I have at the moment, which should give a good impression. It works, but only on the one jpeg instead of across two.

Here's the Javascript in the header:

Expand|Select|Wrap|Line Numbers
  1. <script language="javascript">
  2.  
  3. Image1 = new Image(232,275)
  4. Image1.src = "images/hostage-cover.jpg"
  5.  
  6. Image2 = new Image(232,275)
  7. Image2.src = "images/hostage-cover-highlighted.jpg"
  8.  
  9. function highlight() {
  10. document.hostage.src = Image2.src; return true;
  11. }
  12.  
  13. function original() {
  14. document.hostage.src = Image1.src; return true;
  15. }
  16.  
  17. </script>
  18.  
Here's the code for the image:
Expand|Select|Wrap|Line Numbers
  1. <img 
  2. name="hostage" 
  3. src="images/hostage-cover.jpg" 
  4. width="232" 
  5. height="275" 
  6. alt="Hostage cover" 
  7. usemap="#hostage"/>
  8.  
And here's the image map code:
Expand|Select|Wrap|Line Numbers
  1. <map name="hostage" id="hostage">
  2.  
  3. <area    
  4. shape="poly"
  5.     coords="2,34,26,273,255,254,201,14"
  6.     href="http://books.mileskelly.net/menu1_sub1_detail.asp?ID=657"
  7.     title="Click here to find out more about Hostage"
  8.     onMouseOver="highlight()"
  9.     onMouseOut="original()"/>
  10.  
  11. </map>
  12.  
In case you're worried, Hostage is a novel! If there is any wasted code here, then please let me know and I'll glady destroy it.

Basically, what I want is for that mouseover to highlight two images instead of just one.

Thanks!
Oct 29 '09 #5
Dormilich
8,658 Expert Mod 8TB
@seegoon
then you need to treat two images in the highlight() code.
Oct 29 '09 #6
seegoon
31
@Dormilich
Sorry, I don't understand. Do you mean add another image to the highlight() in the script in the header? Thanks.
Oct 29 '09 #7
Dormilich
8,658 Expert Mod 8TB
@seegoon
yupp, that’s what I’m talking about.
Oct 29 '09 #8
seegoon
31
@Dormilich
I've tried but I'm not getting it right. How should the code look? Thanks.
Oct 29 '09 #9
Dormilich
8,658 Expert Mod 8TB
Expand|Select|Wrap|Line Numbers
  1. function highlight()
  2. {
  3.     img1.src = "picture1.jpeg";
  4.     img2.src = "picture2.jpeg";
  5. }
Oct 29 '09 #10
seegoon
31
Sorry, still not working for me. That code looks very different to what it was before; there was no .jpg mentioned in the original, for instance. Should I be changing something else too? Thanks for your time, I know this must be boring for you.
Oct 29 '09 #11
Dormilich
8,658 Expert Mod 8TB
@seegoon
I’m a lazy bummer, did make some simplifications.

(why creating a whole new image if I only need the source path?)

@seegoon
uh? what about lines 4/7 in post #5, ain’t that no jpegs?*

* even if it were so, it wouldn’t matter because the <img>'s src attribute is always an URI.
Oct 29 '09 #12
seegoon
31
Sorry, I've been a bit unclear; I meant that the function highlight() didn't contain any .jpgs. Anyway, I've been struggling with this all day and have come to the conclusion that I've bitten off more than I can chew! What I want to achieve looks to be seriously complicated beyond what I had realised and I only really understand CSS and HTML. I'm trying to do something that no tutorials seem to actually explain; not only do I want what I've said above, I want several of them on one page. This is just a bit beyond me, and I need to get my nose into a big ol' tutorial or book to start learning a bit of JS. But thank you for your help - it's steered me in the right direction at least!
Oct 29 '09 #13
Dormilich
8,658 Expert Mod 8TB
@seegoon
they indeed do, you're just not aware of it, because you wrap the .jpg in a global variable.
Expand|Select|Wrap|Line Numbers
  1. [global]
  2. Image1.src = "picture1.jpg"; // to keep the names simple
  3.  
  4. [global]
  5. function highlight() {
  6. [local]
  7.     // img1 is the <img> element in your HTML document
  8.     // Image1 is an JavaScript <img> object not attached anywhere
  9.     // JavaScript looks for Image1 in local scope => not found
  10.     // JavaScript looks for Image1 in global scope => found
  11.     // Image1.src = "picture1.jpg" (see above definition)
  12.  
  13.     // therefore
  14.     img1.src = Image1.src;
  15.     // is the same as
  16.     img1.src = "picture1.jpg";
  17.  
  18.     // do that also for the other image ...
  19. [local-end]
  20. }
  21. [global]
Oct 29 '09 #14

Sign in to post your reply or Sign up for a free account.

Similar topics

4
by: Tim | last post by:
Hope someone in the big wide world can help... What I want to do is have an image slideshow which automatically scrolls through a series of images very fast, then pauses when you move your mouse...
12
by: Epetruk | last post by:
Hi all, I want a page where the contents of a table cell are replaced with an image when the mouse moves over the cell, and the text is restored when the mouse moves out. Here's the html for the...
3
by: drjackk | last post by:
Hello, I'm trying to change the onmouseover event dynamically. This sets-up the initial onmouseover event: <a href="home.html"> <img border="0" id="img22" src="images/home1.jpg"...
4
by: Rob R. Ainscough | last post by:
I'm using .NET v1.1 with ASPX web page. I'm trying to have a RollOver hyperlink that will change images on an image control and update the text in a Label control. I've got the image swapping...
1
by: den2005 | last post by:
Hi everybody, I am confused and still looking why this codes is not working. Can anyone notice or know why this code is not working? Thanks in advance. Code working: <form id="form1"...
2
by: sachaburnett | last post by:
Hi everyone! I'm new to Javascript and am finding so much useful information on this group, so thanks to you all! I have a question about preloading images for onmouseover/out effects and...
9
by: peashoe | last post by:
I need to create a javascript that not only changes a picture, but also the link: here is an example of what I need www.myweddingfavors.com/ I'm working on this website and have it half done:...
7
by: petethebloke | last post by:
Can anyone help? I have a client who has made a "dynamic interactive map" of our city using Dreamweaver. Each map file has hotspots that pop-up a div with a little image when the mouse goes over...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.