WebDeveloper.com ®: Where Web Developers and Designers Learn How to Build Web Sites, Program in Java and JavaScript, and More!   
Web Developer Resource DirectoryWebDev Jobs  
Animated GIFs
CSS
CSS Properties
Database
Design
Flash
HTML
HTML 4.01 Tags
JavaScript
.NET
PHP
Reference
Security
Site Management
Video
XML/RSS
WD Forums
 Client-Side
  Development

    CSS
    Graphics
    HTML
    JavaScript
    XML
    Dreamweaver/FrontPage
    Multimedia
    Web Video
    General
    Accessibility

 Server-Side
  Development

    ASP
    Perl
    PHP
    .NET
    Java
    SQL
    Other

 Web Development
  Business Issues

    Business Matters
    Website Reviews

 E-Commerce
    Domain Names
    Search Engines

 Etc.
    Computer Issues
    Forum Software
    Feedback
    The Coffee Lounge



Script Downloads
GetPosition 2

Featured: May 9, 2008
Description: This code returns the position of a given element in a given container, relative to other elements of its type. Very useful for finding position indexes of list items, pictures, form items, and more.

Get Script

Hosting Search
Unix   Windows
PHP   Webmail

Sign up for the free WebDeveloper E-mail newsletter!


JupiterWeb Commerce
Partners & Affiliates
Partner With Us
PDA Phones & Cases
KVM over IP
Find Software
KVM Switch over IP
Career Education
Imprinted Gifts
Domain registration
Laptop Batteries
Calling Cards
Imprinted Promotions
Data Center Solutions
Computer Deals
Prepaid Phone Card
Boat Donations

internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

Web Devs:
Moonlight as a Game Developer and Win Cool Prizes by Accepting the RIA Run Challenge

Now, your mission--should you choose to accept: Take your shot at gaming stardom if you think you might have what it takes to build a cool RIA game and you could win an Xbox 360 or other fabulous prizes. Hurry! You only have until May 15, 2008 to enter. »

 
Article:
Leveraging Your Flash Development with Silverlight

You're not giving up Flash any time soon (and we don't blame you.) But if you could get your Flash application working in Silverlight, why wouldn't you? We show you the tools and techniques required to have your rockin' Flash application rolled for Silverlight. Learn more here. »

 
Article:
What Does it Take to Build the Best RIA?

With the proliferation of Rich Interactive Application (RIA) platform choices out there, you no longer have to take a one-size-fits-all approach to developing your next RIA application. Knowing the strengths (and weaknesses) of each platform can help you to decide the best RIA for your next application. »

 

Imagemapping: From Both Sides

by David Lawrence
Reprinted from Web Developer® magazine, Vol. 2 No.1 Spring 1996 (c) 1996

Tucked among the HTML 3.0 extensions is one especially powerful feature: client-side imagemapping. These imagemaps function the same way their script-based counterparts do, but the map definition is described right in an HTML document (not a CGI script) and is interpreted locally by the browser, instead of by the server machine.

Already supported by several popular browsers--including Netscape Navigator 2.0, Microsoft's Internet Explorer, and Spyglass's Enhanced Mosaic 2.0--client-side imagemaps have a number of advantages for Web authors. They execute more quickly and more efficiently than maps that must first access a remote server. More important, they provide a workable solution for Web designers who don't have access to their service provider's cgi-bin directory.

Below is a brief overview of some of the practical differences between preparing a script-based imagemap and a client-side one. One downside to bear in mind before you go out and redo all your imagemaps (or add them for the first time) is that only visitors using browsers that support client-side imagemaps will be able to make use of them. If you choose to add client-side imagemaps to your site, be sure to provide an alternate means of navigation for visitors using all other browsers, from Lynx to Netscape 1.1.

Getting Started

As mentioned above, the script-based technique for implementing imagemaps requires Web designers to have access permission to their server's cgi-bin directory. You'll need to have a script for responding to imagemaps (usually distributed free with server software), and you'll need to place it in an appropriate directory (often simply called "imagemap" by many servers).

You'll also need to prepare an imagemap graphic file containing coordinates for each hotlink's boundaries. There are a number of utilities (such as WebMap on the Mac side, MapEdit for Windows, or MapMarker for Unix systems) that will allow you to identify hotlink coordinates in a graphics file, assign URLs to those regions, and save a text-based map file to be read by the imagemap's script. WebMap stores the imagemap's list of URLs in the data fork of the actual graphic file itself, letting you edit the list as necessary later. You'll also need to configure your server to find the map definitions file.

Your map's URLs should point to your imagemap script file. When a user clicks on your map, the clicked coordinates are appended to the URL. The server software will then compare those coordinates to a list of anchor points in the map definitions file, and then direct the browser to the designated Web page.

A couple of other items need to be attended to. It's a good idea to assign a default URL for any non-hotlinked parts of your imagemap. If you're lazy, you can simply reload the page on which the image appears, and fail to alert users that they need some target practice with the mouse. Writing the HTML for referencing an imagemap consists of adding an ISMAP attribute to your <IMG> tag and anchoring a link from the map graphic to the map definition file (accessed by the server's imagemap script).

Nuts and Bolts

There are two different standards for formatting a map definition file. The NCSA imagemap data file specifies the default URL, then the coordinates. The CERN imagemap data file is equally simple (it does reverse the order of the URL and coordinates, though) but is rarely used in the United States. Figure 1 shows a sample taken from my Comedy Network site.

Figure 1. A sample map definition file


#
# Created by WebMap 1.0.1
# Monday, September 18, 1995 at 12:28 AM
# Format: NCSA
#

default /acn/acnhome.html

poly /acn/acndymo.html 79,254 128,256 183, 277
  181,290 145,305 78,304 25,270 32,259 79,254

rect /acn/acntour.html 239,0 440,20
rect /acn/acnstaff.html 239,25 441,47
rect /acn/acncomwks.html 239,51 441,73
rect /acn/acnprep.html 239,77 441,99
rect /acn/acnpaper.html 240,104 440,124
rect /acn/acnpast95.html 239,130 440,151
rect /acn/acnhelper.html 239,155 441,177
rect /acn/acnmacsw.html 240,182 441,203
rect /acn/acnwinsw.html 240,208 440,229
rect /acn/acnmall.html 240,234 440,255
rect /acn/acnfree4all.html 240,260 440,281
rect /acn/acncomments.html 240,286 439,307
rect /acn/acncright.html 205,3 236,307

The beginning of the code is a commented section, denoted by pound signs (#), that tells us what software was used to create the list. Next is the default URL, which in this case takes the reader back to the home page. The next lines describe the hot zones as defined by shapes: one poly[gon] and a dozen rect[angles]. The URLs are relative to the cgi-bin directory, and the number pairs are x,y coordinates, where 0,0 is the upper-left-hand corner of your graphic.

The imagemap definition standards let you use several shapes for designating your hot spots: circles, rectangles, polygons, and (for NCSA servers only) points. The coordinate pairs that are generated vary, based on the shape. A circle is described by its center point and any point along the circumference. An oval is described by the upper left and lower right corners of the rectangle that would perfectly contain the oval. Similarly, a rectangle is described by its upper left and lower right corners' coordinates. Polygons are described by a series of bounding coordinates, beginning and ending with the same coordinate pair. Points are described by one set of coordinates (and almost no one uses points--they're too small to click on accurately, and that's, well, pointless).

With client-side imagemapping, these coordinates are embedded within the HTML file that displays your imagemap. This leads to another bonus: Having the code within the HTML file makes debugging a lot easier than having to go to a separate application to find out why the coordinates don't match or the URL is incorrect.

The specifications for client-side imagemapping use a <MAP> tag with a NAME attribute to name the map file and an <AREA> tag with SHAPE and COORDS attributes to define each hot zone's shape and attributes. The <IMG> tag for the imagemap graphic contains a USEMAP attribute with the same value as that used for the NAME attribute in <MAP>.

As an example, Figure 2 shows the HTML code for a client-side version of the American Comedy Network imagemap.

Figure 2. HTML code for a client-side imagemap


<IMG acnmap.gif USEMAP="#acnmap">
.
.
.
<MAP NAME="acnmap">
<AREA SHAPE="rect" href="acndymo.html" COORDS="79,254,145,305">
<AREA SHAPE="rect" href="acntour.html" COORDS="239,0,440,20">
<AREA SHAPE="rect" href="acnstaff.html" COORDS="239,25,441,47">
<AREA SHAPE="rect" href="acncomwks.html" COORDS="239,51,441,73">
<AREA SHAPE="rect" href="acnprep.html" COORDS="240,104,440,124">
<AREA SHAPE="rect" href="acnpaper.html" COORDS="240,104 440,124">
<AREA SHAPE="rect" href="acnpast95.html" COORDS="239,130,440,151">
<AREA SHAPE="rect" href="acnhelper.html" COORDS="239,155,441,177">
<AREA SHAPE="rect" href="acnmacsw.html" COORDS="240,182,441,203">
<AREA SHAPE="rect" href="acnwinsw.html" COORDS="240,208,440,229">
<AREA SHAPE="rect" href="acnmall.html" COORDS="240,234,440,255">
<AREA SHAPE="rect" href="acnfree4all.html" COORDS="240,260,440,281">
<AREA SHAPE="rect" href="acncomments.html" COORDS="240,286,439,307">
<AREA SHAPE="rect" href="acncright.html" COORDS="205,3,236,307">
</MAP>

Note that the map doesn't have to be contained on the same HTML page as the calling <IMG> tag. If you have a number of imagemaps used in your site, and you want to avoid including the map coordinates in so many documents, it might make sense to create one page of maps and link to this separate document as necessary from other pages. In this case, the USEMAP attribute would be expanded to read "maps.html#nameofmap."

When you access a client-side imagemap with an enabled browser, you'll notice two differences right away: The URLs for the hot spots are revealed as the cursor passes over each individual region, as opposed to just seeing the Cartesian coordinates (as is the case with imagemaps that call gateway scripts). This may be a good thing or a bad thing, depending on the content of the page; you may not want the eventual destination to be known to the user if you're trying to surprise them. And on the plus side, the difference in speed will be quite evident.

All told, support for client-side imagemapping is one of the brighter moves that browser companies can make. As time goes by, script-based imagemaps should become increasingly a thing of the past.




Acceptable Use Policy

JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers