Place your message here

Your Guide to Professional
Web Site Design and Development

Web Development
HTML Codes
HTML Tips
Javascript Snippets
216 Safe Colors
Symbols
Web Directory
Web Resources
Internet Channels

Web Development: Business, Advertising, Internet Marketing, Promotion and Web Site Design

| Web Development | HTML Codes | HTML Tips | Javascript Snippets | 216 Safe Colors | Symbols | Recommendations |

Display Information with Your Web Page Links on Mouseover

By William Bontrager

This article shows you how to code an instant information system that can place

   • definitions,
   • instructions, and
   • other information

near your site visitor's cursor. The information appears when the cursor hovers over certain links or when certain form fields are clicked.

The information pre-loads as the web page loads. Thus, it can appear instantly.

This instant info system uses layers to present the info. If you would like to use alert boxes or popup windows instead, see the "FastInfo, Build Your Own JavaScript Pop-Up Windows" ebook, sold here.

Why instant info? Here are examples of how it may be used:

     1. As additional information related to a link, to be
        presented when the cursor is over the link. For
        example, your link might be "Best Widgets" and the
        instant info could be "We searched far and wide for
        the best of the best. This is it!"

     2. You offer many colors of each item. To print them
        all, would make your web page appear cluttered. With
        this system, you could have a "Colors" link that
        launches an instant list of colors.

     3. You have a list of ingredients, parts, or other
        components. The instant info for each component
        could be a list of amount and quality required,
        what it's function is, whether or not it's actually
        necessary, substitution suggestions, alternate
        measurements, and so forth.

     4. Instant hints, for quiz or problem solving pages.

     5. Instant explanation of what data is expected or
        required, for form fields.

     6. Instant help at any point on your web page.

The instructions are in this article instead of in the JavaScript. The JavaScript has instructions related only to the one section in the script that needs to be customized.

You implement it in three steps:

     1. Create your web page with your instant info links
        and/or instant info form fields.

     2. Create the content that will be instantly available.

     3. Install the JavaScript.

Each step requires the prior step to be completed.

If you prefer to have a complete example at hand as you go through the instructions, you'll find it linked from this page.

The code has been tested to work with IE 5, Netscape 4, Netscape 6, and Opera 6.

I. Creating Your Instant Info Links and Form Fields

For links, it is rather straight-forward. Go ahead and create the links.

If the href="____" attribute of any links do not contain a URL to another web page, replace the attribute with

href="javascript:Null()"

Once you've created the links, insert

onMouseover="LL_showinfo(1)" onMouseout="LL_hideallinfo()"

into each link anchor tags Example:

<a
   href="javascript:Null()"
   onMouseover="LL_showinfo(1)"
   onMouseout="LL_hideallinfo()">
Something
</a>

See the number 1 between the parenthesis? The numbers need
to be sequential -- (1), (2), (3), and so forth. It would
look something like this:

<a
   href="javascript:Null()"
   onMouseover="LL_showinfo(1)"
   onMouseout="LL_hideallinfo()">
Something
</a>
<a
   href="javascript:Null()"
   onMouseover="LL_showinfo(2)"
   onMouseout="LL_hideallinfo()">
Something Else
</a>
<a
   href="javascript:Null()"
   onMouseover="LL_showinfo(3)"
   onMouseout="LL_hideallinfo()">
Another
</a>

For form fields, add the following two attributes to the form field tag:

onFocus="LL_showinfo(1)" onBlur="LL_hideallinfo()"

That number (1) needs to be sequential with other instant info form fields and instant info links. Let's suppose you had three instant info links above a form, and your form has two instant info form fields. The form fields might look something like this:

Your Email:
<input
   type="text"
   name="email"
   onFocus="LL_showinfo(4)"
   onBlur="LL_hideallinfo()">
Your Telephone Number:
<input
   type="text"
   name="phone"
   onFocus="LL_showinfo(5)"
   onBlur="LL_hideallinfo()">

II. Creating the Instant Info Content

This needs to be done in two parts, creating a CSS Style in the HEAD area and creating the content itself in the BODY area.

A. The CSS Style

Put the following CSS Style into the HEAD area of your page:

<STYLE type="text/css">
<!--
.infoboxstyle {
	position: absolute;
	color: black;
	border: black;
	border-style: solid;
	border-top-width: 1px;
	border-bottom-width: 3px;
	border-left-width: 6px;
	border-right-width: 6px;
	background-color: #EFEFEF;
	z-index: 1;
	visibility: hidden;
}
-->
</STYLE>

Now, let's customize it according to your preferences.

"infoboxstyle" is the style of the box containing the info content. Line by line, the style sheet rules in the example are:

     "position: absolute;" is required, and it must remain
     as is. This allows the JavaScript to place the
     info box into exact positions on the web page.

     "background-color: #EFEFEF;" is optional. Use it
     when you want to specify a background color for the
     info box. The color, as all colors in CSS, can be
     specified in hexadecimal, like the example, as an
     RGB value, or the color name.

     "color: black;" is optional. Use it when you want
     to specify a text color for the info box.

     "border: black;" is optional. Use it when you want
     to specify a color for a border around your info box.

     border-style: solid;" is optional. Use it when you
     want to specify a style for a border around your
     info box. Other than "solid", attributes that can
     be specified are "none", "dotted", "dashed", "double",
     "groove", "ridge", "inset", and "outset".

     "border-top-width: 6px;" is optional. When you want
     to have a top border for your info box, specify the
     number of pixels.

     "border-bottom-width: 3px;" is optional. When you want
     to have a bottom border for your info box, specify
     the number of pixels.

     "border-left-width: 1px;" is optional. When you want
     to have a left border for your info box, specify the
     number of pixels.

     "border-right-width: 1px;" is optional. When you want
     to have a right border for your info box, specify the
     number of pixels.

     "z-index: 1;" should be present. Although not strictly
     required, this directs the browser to make this layer,
     layer number one. (Your info box are layers.) Because
     each sub-menu will be displayed independent of the
     others, and only one sub-menu at a time, the number
     "1" is okay for all.

     "visibility: hidden;" is required. Before you create
     your info box (in the next step) change this to
     "visibility: show;" -- otherwise the browser won't
     display your info box during your development phase.
     Once the info box have been created, change this back
     to "visibility: hidden;" so the info box won't be
     displayed until the cursor travels over one of the main
     menu links.

B. The Instant Info Content

The HTML markup for the instant info content should be placed immediately below the BODY tag. This is not necessarily the place where they will appear, since the content has specific location rules built in. The reason for placing the content immediately below the BODY tag is to ensure the browser reads the HTML markup before the content needs to be displayed.

Here is an example of instant info content:

<div
 id="aDefinition"
 style="top:1px; left:1px; width:65px; height:40px; padding:6;"
 class="infoboxstyle">
The content goes here.
</div>

Now, let's customize it according to your preferences.

The first attribute is "id" and it is required. The value of "id" is a name you assign to that particular content. (The JavaScript uses this name to keep track of which content is which.)

The second attribute is "style" and is also required. Of the five rules in the example style's value, only "padding:__" is optional. The reason these particular style rules are specified as an in-line style is because the information is needed to calculate the display of the info box. Not all browser JavaScript engines can access the style rules specified in the HEAD area.

     "top:1px" specifies the distance in pixels from the
     top edge of the browser window to be the top left
     corner of the instant info box to be displayed. Make
     this 1px. The JavaScript will calculate positioning
     when the instant info is displayed.

     "left:1px" specifies the distance in pixels from the
     left edge of the browser window to be the top left
     corner of the instant info box to be displayed. Make
     this 1px. The JavaScript will calculate positioning
     when the instant info is displayed.

     "width:65px;" specifies the width of the sub-menu to
     be 65 pixels. Adjust as necessary, easier if you wait
     until the JavaScript is in place and you're testing
     the page.

     "height:40px;" specifies the height of the sub-menu
     to be 40 pixels. Adjust as necessary, easier if you
     wait until the JavaScript is in place and you're
     testing the page.

     "padding:6;" is optional. It specifies the padding
     you want between the border of the sub-menu and the
     text within the border. It's expressed in pixels.
     Adjust or omit as desired.

The third attribute is "class" and is required. It's value must be the same as the class created in the HEAD area for this purpose, "infoboxstyle" in our example.

III. Installing the JavaScript

At this point, unless you've already done so, pick up the JavaScript from the demonstration page.

Paste the JavaScript into the HEAD area of your page.

Customize the JavaScript by specifying the "id" value of each instant info content item you created in step II, along with the sequential number related to the item.

The JavaScript has instructions and is, itself, an example of how to do it.

Now you have the tools to build a professional instant info system. If you prefer to use a popup system or a JavaScript alert system, see the "FastInfo, Build Your Own JavaScript Pop-Up Windows" ebook, sold here.

Whether you use the layers system presented in this article or one of the systems described in the above ebook, having appropriate information available the instant it's needed can give site visitors a good impression of your business.

Will Bontrager

About the Author:

William Bontrager Programmer/Publisher, "WillMaster Possibilities" ezine mailto:possibilities@willmaster.com

Are you looking for top quality scripts? Visit Willmaster and check out his highly acclaimed Master Series scripts. Some free, some for a fee.

Back