PDA

View Full Version : Bit of scripting help if possible please.



Collectors-info
04-10-2007, 05:57 PM
Hi, can the section of script below be adapted to have a url image in place of the background colour of white. Itís to make a mouse over hint script a little nicer looking.


var tipFontColor= "#17007c";
var tipBgColor= "white";
var tipBorderColor= "#18007b";
var tipBorderWidth= 5;
var tipBorderStyle= "solid";
var tipPadding= 4;


Hope you can help.

Thanks.

Watdaflip
04-10-2007, 08:00 PM
That would depend on the rest of the javascript and what it is doing.

Collectors-info
04-10-2007, 09:11 PM
Hi Watdaflip, & thanks for getting back. This is an example page that I am trying things out on with the mouse over hint/help script.

Link to test page (http://www.collectors-info.com/testing/mouseovertest.html)

Ps. I forgot. Is there also an easy way to make? lets say Number 3 sticky. IE: if I have a url link in the hint pop out, this type of pop up hint stays open until I close it somehow, to enable a bit more time to click on the url. But dont worry if this is a lot of grief.









Thanks.

Watdaflip
04-10-2007, 11:39 PM
Hey, is this what you are looking for?

http://globalreign.com/java.php

If so heres the javascript code


<script type="text/javascript">

/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* IMPORTANT: Put script after tooltip div or
put tooltip div just before </BODY>. */

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

var origWidth, origHeight;

// 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= true;
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 220;
var tipHeight = 259;

// Padding - how far to push text inward on image
var pad_top = 20;
var pad_bottom = 20;
var pad_left = 42;
var pad_right = 20

var offX= 10; // how far from mouse to show tip
var offY= 12;
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "12pt";
// 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= "#17007c";
var tipBgColor= "white";

var tipBorderStyle= "none";
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('http://www.collectors-info.com/testing/stamp_tip.jpg','To get some extra help we have installed plenty of hints & ideas like this one to help you along with all parts of our site. When ever you see a ? symbol there will be some extra advice or help in the form of a pop up. When you run your mouse over the symbol, these pop ups last for 1 &#189; seconds after you have moved your mouse off the ? symbol, and will then disappear, or will change if you move to another ? symbol. They last for 1 &#189; seconds to enable you to click on some of the links that some pop ups will have. ',"white");
messages[1] = new Array('http://www.collectors-info.com/testing/stamp_tip.jpg','Test 1',"white");
messages[2] = new Array('http://www.collectors-info.com/testing/stamp_tip.jpg','Test 2','black','white');
messages[3] = new Array('http://www.collectors-info.com/testing/stamp_tip.jpg','<a href="http://www.collectors-info.com">Collectors-info.com</a>Test3','#ffffa8','#006400');

//////////////////// 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 + '" height="' + tipHeight + '"><tr><td valign="top" style="border: none; padding-left: ' + pad_left + 'px; padding-top: ' + pad_top + 'px; padding-right: ' + pad_right + 'px; padding-bottom: ' + pad_bottom + 'px;" background="';
var midStr = '"><span style="color: ' + tipFontColor + '">';
var endStr = '</span></td></tr></table>';

////////////////////////////////////////////////////////////
// initTip - initialization for tooltip.
// Global variables for tooltip.
// Set styles
// Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
if (nodyn) return;
tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
tipcss = 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.padding = tipPadding+"px";
tipcss.borderStyle = tipBorderStyle;
}
if (tooltip&&tipFollowMouse) {
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 (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;
var tip = startStr + messages[num][0] + midStr + messages[num][1] + endStr;
//tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt);
else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.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 = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
}
// tooltip width and height
var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
// document area in view (subtract scrollbar width for ns)
var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
// check mouse position against tip and window dimensions
// and position the tooltip
if ((mouseX+offX+tpWd)>winWd)
tipcss.left = mouseX-(tpWd+offX)+"px";
else tipcss.left = mouseX+offX+"px";
if ((mouseY+offY+tpHt)>winHt)
tipcss.top = winHt-(tpHt+offY)+"px";
else tipcss.top = mouseY+offY+"px";
if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

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

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')


</script>


Also i edited the hide function. You have to edit the hideTip() function for each tooltip, now instead of not having any parameters you have to have how long you want it to be open. The current functions are

hideTip()

you need to change them all to

hideTip(1200)


And if there is a tooltip that you want to stay open longer set it to like

hideTip(4000)

I hope thats what you wanted.

Collectors-info
04-11-2007, 09:04 AM
I hope thats what you wanted.


Hi! Sorry I didn’t get back sooner. (time/diff)
This is just what was needed & absolutely perfect. I really appreciate the help.
You have even saved my hair. Just got to brush up on my imaging skills now. lol

Many, many thanks.

Collectors-info
05-08-2007, 06:34 PM
Hi Watdaflip!
I have had a look around this script & was trying to stop the image repeating, but can’t find this part/function.
What I was trying to do is set the max image to let say 400x250 but also may want to use a 150x100 image for smaller amounts of info. But when I try to insert a smaller image it repeats.
Is there a way to use different size images in the script or even stopping the repeat function may solve it?
Sample--- http://www.collectors-info.com/testing/hint.html 0&2 are fine but 1&3 arent.

Cheers.