Hi!
ok i have a solution to your problem, the answer comes from some article
in siteexperts.com, this script uses VML (vector markup language) and javascript.
Code provided below:
Article: Cross-Hair Scope Cursor
By Jon Perry

Article / explanation / code:
This code changes the usual cursor into a responsive cross-hair scope. The
cursor can be programmed to respond to different areas of the screen.
Try moving the cursor over the titles or textbox below!

It has been programmed using a blend of DHTML and VML, which is an acronym
for Vector Markup Language, as devised by Microsoft, and used to provide
the artwork for Office2000.
VML provides a much higher level of graphical capability than DHTML, it allows
us to draw lines and shapes and control these graphical objects.
The first lines of the program tell the browser that the document contains
VML. When using this program, save it with a normal HTM extension.
<HTML>
<HEAD>
<TITLE>DHTML/VML Cross-Hair Scope</TITLE>
<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>
<STYLE>
v\:* {behavior:url(#default#VML);}
</STYLE>
</HEAD>

The function movescope() does several things. First we move the circle to
the new position. This uses DHTML on the VML object. We need to adjust for
any scrolling aswell.
<SCRIPT>
function movescope()
if (document.all) {
scope.style.left=event.clientX+document.body.scrollLeft-11;
scope.style.top=event.clientY+document.body.scrollTop-11;

To detect which element we are over, we have to be sneaky. First we make
the scope the lowest element on the page by changing it's zindex. This reveals
which element we are over, and then we reset the zindex.
scope.style.zIndex=-1;
de=document.elementFromPoint(event.clientX,event.clientY);
scope.style.zIndex=0;

To ensure that de is an object, we first check it, and if it is, we get it's
id. If not, we say its id=''.
if (de) de=de.id;
else de='';

This line uses the text box to identify the element we are over. It is in
for error checking, and may be removed, even though it looks quite good.
if (mtext) mtext.value=de;

The main idea behind Scope is to provide a dynamically responsive cursor.
This means that we wish to respond to certain situations, in this case we
change the color of the cursor according to which element the scope is over.
switch (de) {
case 'mtext': scope.fillcolor='red';break;
case 'mtitle': scope.fillcolor='blue';break;
case 'hlink': scope.style.zIndex=-1;scope.fillcolor='#00FF00';break;
default: scope.fillcolor='yellow';
}
}
}

Notice that not all the colors can be implemented by name, e.g. 'pink' doesn't
work - but using '#FFC0CB' as a color string instead does work.
For the 'hlink' case, this id is for a hyperlink, so we set the zindex of
the scope to low again. This allows us to activate the hyperlink - otherwise
we only click the top element - which is always the scope.
And then we close the script.
</SCRIPT>

And there we go.
To add new elements, make sure that they have an ID. For example, for elements
with an ID of newID and to make the cursor pink add:
case 'newID': scope.fillcolor='#FFC0CB';

Next we need to set up the <BODY> element. This involves setting the computerís
default cursor to the crosshair style, and we wish to detect all mouse movement
or scrolling on the document.
<BODY
id="mbody"
onload="mbody.style.cursor='crosshair';"
onscroll="movescope()"
onmousemove="movescope();">

This one line of VML draws a circle inside an 18*18 rectangle, and fills
it in yellow. Please note the closing end tag.
<vval
id="scope"style="position:absolute;width:18;height:18"
fillcolor='yellow' />

And we provide some HTML fun. Please note that ALL of the elements we wish
to scope have IDís. We use the ID's in the movescope's select statement to
assign custom colors.
<INPUT TYPE="TEXT" id="mtext">
</BODY>
</HTML>
Happy Scoping!!!

Jon Perry is a freelance Author and Programmer. Contact him at Jon@perry.globalnet.co.uk


This article was posted by Neo.
( http://storm.prohosting.com/~4g )