PDA

View Full Version : Mouse over effects


muhaha
02-12-2006, 03:03 PM
Hi, I'm new to dreamweaver and I need help making a mouse over effect. The effect I'm after can bee seen here: http://news.yahoo.com/
If you scroll down to where are the text links are and you hover your mouse over one of these links a popup box with a picture and some text will show up beside your mouse. This is the effect I'm after but am not really sure what exactly is it called. Notice how the left hand corner of the popup box always appears next to your mouse pointer. How is this done? Also instead of a text link, can I make an irregular shaped link use this effect?
Here is a screenshot of the effect.
http://i1.tinypic.com/nnkzsj.jpg

Creative Insanity
02-12-2006, 04:27 PM
It is called a tool tip and here ya go.

<script language="javascript" type="text/javascript">
<!--
/*
Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
Copyright 2002 by Sharon Paine
Visit http://www.dynamicdrive.com for this script
*/
/* IMPORTANT: Put script after tooltip div or
put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

// resize fix for ns4
var origWidth, origHeight;
if (ns4) {
origWidth = window.innerWidth; origHeight = window.innerHeight;
window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }


/////////////////////// CUSTOMIZE HERE ////////////////////
// settings for tooltip
// Do you want tip to move when mouse moves over link?

var tipFollowMouse= false;


// Be sure to set tipWidth wide enough for widest image

var tipWidth= 340;
var offX= 20; // how far from mouse to show tip
var offY= 12;
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";


// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to

var tipFontColor= "#000000";
var tipBgColor= "#FFFFFF";
var tipBorderColor= "#808080";
var tipBorderWidth= 3;
var tipBorderStyle= "ridge";
var tipPadding= 4;


// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();


// multi-dimensional arrays containing:
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip

messages[0] = new Array('Macula.jpg',' ',"#FFFFFF");
messages[1] = new Array('wet.jpg',' ',"#FFFFFF");
messages[2] = new Array('dry.jpg',' ',"#FFFFFF");
messages[3] = new Array('scar.jpg',' ',"#FFFFFF");
messages[4] = new Array('hard.jpg',' ',"#FFFFFF");
messages[5] = new Array('geographic.jpg',' ',"#FFFFFF");
messages[6] = new Array('hard.jpg',' ',"#FFFFFF");
messages[7] = new Array('geog.jpg',' ',"#FFFFFF");
messages[8] = new Array('neovascular1.jpg',' ',"#FFFFFF");
messages[9] = new Array('neovascular2.jpg',' ',"#FFFFFF");
messages[10] = new Array('cnv.jpg',' ',"#FFFFFF");
messages[11] = new Array('saturated.jpg',' ',"#FFFFFF");
messages[12] = new Array('unsaturated.jpg',' ',"#FFFFFF");
messages[13] = new Array('fat.jpg',' ',"#FFFFFF");
messages[14] = new Array('internalanatomy.jpg',' ',"#FFFFFF");
messages[15] = new Array('blue.jpg',' ',"#FFFFFF");
messages[16] = new Array('bmi.jpg',' ',"#FFFFFF");
messages[17] = new Array('bmifat.jpg',' ',"#FFFFFF");
messages[18] = new Array('activity1.jpg',' ',"#FFFFFF");
messages[19] = new Array('activity.jpg',' ',"#FFFFFF");

//////////////////// END OF CUSTOMIZATION AREA ///////////////////


// preload images that are to appear in tooltip
// from arrays above

if (document.images) {
var theImgs = new Array();
for (var i=0; i<messages.length; i++) {
theImgs[i] = new Image();
theImgs[i].src = messages[i][0];
}
}


// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text

var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
// initTip - initialization for tooltip.
// Global variables for tooltip.
// Set styles for all but ns4.
// Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////

var tooltip, tipcss;
function initTip() {
if (nodyn) return;
tooltip = (ns4)? document.tipDiv.document: (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
tipcss = (ns4)? document.tipDiv: tooltip.style;
if (ie4||ie5||ns5) { // ns4 would lose all this on rewrites
tipcss.width = tipWidth+"px";
tipcss.fontFamily = tipFontFamily;
tipcss.fontSize = tipFontSize;
tipcss.color = tipFontColor;
tipcss.backgroundColor = tipBgColor;
tipcss.borderColor = tipBorderColor;
tipcss.borderWidth = tipBorderWidth+"px";
tipcss.padding = tipPadding+"px";
tipcss.borderStyle = tipBorderStyle;
}

if (tooltip&&tipFollowMouse) {
if (ns4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = trackMouse;
}
}

window.onload = initTip;


/////////////////////////////////////////////////
// doTooltip function
// Assembles content for tooltip and writes
// it to tipDiv
/////////////////////////////////////////////////

var t1,t2; // for setTimeouts
var tipOn = false; // check if over tooltip link
function doTooltip(evt,num) {
if (!tooltip) return;
if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
tipOn = true;


// set colors if included in messages array

if (messages[num][2]) var curBgColor = messages[num][2];
else curBgColor = tipBgColor;
if (messages[num][3]) var curFontColor = messages[num][3];
else curFontColor = tipFontColor;
if (ns4) {
var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>'+ startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
tooltip.write(tip);
tooltip.close();
} else if (ie4||ie5||ns5) {
var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt);
else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
if (tipOn) positionTip(evt);
}


/////////////////////////////////////////////////////////////
// positionTip function
// If tipFollowMouse set false, so trackMouse function
// not being used, get position of mouseover event.
// Calculations use mouseover event position,
// offset amounts and tooltip width to position
// tooltip within window.
/////////////////////////////////////////////////////////////

function positionTip(evt) {
if (!tipFollowMouse) {
mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
}


// tooltip width and height

var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;


// document area in view (subtract scrollbar width for ns)

var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft ;
var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop ;


// check mouse position against tip and window dimensions
// and position the tooltip

if ((mouseX+offX+tpWd)>winWd)
tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
if ((mouseY+offY+tpHt)>winHt)
tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}


function hideTip() {
if (!tooltip) return;
t2=setTimeout("tipcss.visibility='hidden'",100);
tipOn = false;
}

//-->
</script>


Internal (#)

muhaha
02-12-2006, 06:55 PM
Is there a way to do it using design mode in dreamweaver? Im not good at decyphering code.

domedia
02-12-2006, 07:05 PM
First add the layers that you want to show up.
By default set them to be invisible.
Then use the show/hide layer behaviour on the links you want the layers to pop up on.
Actually, if you follow the tutorial on the hompage about drop down menus, the principle is the same.

muhaha
02-12-2006, 07:16 PM
I am familiar with creating popup menus, but with pop up menus their position is fixed. How do I get the tooltip to follow the mouse.

dthomsen8
02-13-2006, 09:26 PM
How do I find the article on the homepage about drop-down menus?

For lurkers, you can get to the home page from here by clicking on the big "Dreamweaver Club" graphic at the top of this page.

Whoa! Somebody has added "Home" to the menu on the right. Thanks.

Creative Insanity
02-13-2006, 10:24 PM
http://www.dreamweaverclub.com/dreamweaver-dhtml-menu.php