PDA

View Full Version : Image following mouse


123456789
04-14-2007, 06:21 PM
How do I get this code to work for an onmouseover and onmouseout event for an image? (I don't want it to be all over the page; just when I hover over an image)

Thanks!

I tried putting the <script> in the head section, and making a function called asdf(), and have that be called in the body, but it wouldn't work.

The current script has an image following it around the page:

<html>
<head>
<title>test</title>
</head>
<body>
asdf
asdf
asdf
<script type="text/javascript">

/*
Simple Image Trail script- By JavaScriptKit.com
Visit http://www.javascriptkit.com for this script and more
This notice must stay intact
*/

var trailimage=["mag_glass.gif", 50, 38] //image path, plus width and height
var offsetfrommouse=[-10,-15] //image x,y offsets from cursor position in pixels.

Enter 0,0 for no offset
var displayduration=0 //duration in seconds image should remain visible. 0 for

always.

// if (document.getElementById || document.all)
document.write('<div id="trailimageid"

style="position:absolute;visibility:visible;left:0px;top:0px;width:1px;height:1px">

<img src="'+trailimage[0]+'" border="0" width="'+trailimage[1]+'px"

height="'+trailimage[2]+'px"></div>')

if (displayduration>0)
setTimeout("hidetrail()", displayduration*1000)

document.onmousemove=followmouse

function gettrailobj(){
if (document.getElementById)
return document.getElementById("trailimageid").style
else if (document.all)
return document.all.trailimagid.style
}

function truebody(){
return (!window.opera && document.compatMode && document.compatMode!="BackCompat")?

document.documentElement : document.body
}

function hidetrail(){
gettrailobj().visibility="hidden"
document.onmousemove=""
}

function followmouse(e){
var xcoord=offsetfrommouse[0]
var ycoord=offsetfrommouse[1]
if (typeof e != "undefined"){
xcoord+=e.pageX
ycoord+=e.pageY
}
else if (typeof window.event !="undefined"){
xcoord+=truebody().scrollLeft+event.clientX
ycoord+=truebody().scrollTop+event.clientY
}
var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth :

pageXOffset+window.innerWidth-15
var docheight=document.all? Math.max(truebody().scrollHeight, truebody

().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)
if (xcoord+trailimage[1]+3>docwidth || ycoord+trailimage[2]> docheight)
gettrailobj().display="none"
else
gettrailobj().display=""
gettrailobj().left=xcoord+"px"
gettrailobj().top=ycoord+"px"
}
</script>
</body>
</html>

123456789
04-14-2007, 06:35 PM
Here's an example, except I want it to happen only when it moves over an image:

http://www.javascriptkit.com/script/script2/simpleimagetrail.shtml

123456789
04-14-2007, 09:37 PM
I used this code instead, but thanks!

<html>
<head>
<style type="text/css">

#dhtmltooltip{
position: absolute;
border: 0px;
visibility: hidden;
z-index: 100;
}

#dhtmlpointer{
position:absolute;
z-index: 101;
visibility: hidden;
}

</style>
</head>
<body>
<script type="text/javascript">

/***********************************************
* Cool DHTML tooltip script II- © Dynamic Drive DHTML code library

(www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetfromcursorX=-40 //Customize x offset of tooltip
var offsetfromcursorY=-40 //Customize y offset of tooltip

var offsetdivfrompointerX=50 //Customize x offset of tooltip DIV relative to

pointer image
var offsetdivfrompointerY=50 //Customize y offset of tooltip DIV relative to

pointer image. Tip: Set it to (height_of_pointer_image-1).

document.write('<div id="dhtmltooltip"></div>') //write out tooltip DIV
document.write('<img id="dhtmlpointer" src="mag_glass.gif">') //write out pointer

image

var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById?

document.getElementById("dhtmltooltip") : ""

var pointerobj=document.all? document.all["dhtmlpointer"] :

document.getElementById? document.getElementById("dhtmlpointer") : ""

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")?

document.documentElement : document.body
}

function ddrivetip(){
if (ns6||ie){

enabletip=true
return false
}
}

function positiontip(e){
if (enabletip){
var nondefaultpos=false
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var winwidth=ie&&!window.opera? ietruebody().clientWidth : window.innerWidth-20
var winheight=ie&&!window.opera? ietruebody().clientHeight : window.innerHeight-20

var rightedge=ie&&!window.opera? winwidth-event.clientX-offsetfromcursorX :

winwidth-e.clientX-offsetfromcursorX
var bottomedge=ie&&!window.opera? winheight-event.clientY-offsetfromcursorY :

winheight-e.clientY-offsetfromcursorY

var leftedge=(offsetfromcursorX<0)? offsetfromcursorX*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context

menu
if (rightedge<tipobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=curX-tipobj.offsetWidth+"px"
nondefaultpos=true
}
else if (curX<leftedge)
tipobj.style.left="5px"
else{
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetfromcursorX-offsetdivfrompointerX+"px"
pointerobj.style.left=curX+offsetfromcursorX+"px"
}

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight){
tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
nondefaultpos=true
}
else{
tipobj.style.top=curY+offsetfromcursorY+offsetdivfrompointerY+"px"
pointerobj.style.top=curY+offsetfromcursorY+"px"
}
tipobj.style.visibility="visible"
if (!nondefaultpos)
pointerobj.style.visibility="visible"
else
pointerobj.style.visibility="hidden"
}
}

function hideddrivetip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
pointerobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}

document.onmousemove=positiontip

</script>
<table border="1" onMouseover="ddrivetip()";
onMouseout="hideddrivetip()"><tr><td>Mouse over Me!</td></tr></table>
</body>
</html>