symon Site Admin

 Location: 
Joined: 13 Mar 2006 Posts: 866 Location: Hampshire Add Karma 
|
Posted: Mon Jul 30, 2007 9:09 pm Post subject: Mouse Over Pop Up Image |
|
|
This little hack will create a little popup window when you run your mouse over a certain word or image, like below
Before
Once Mouse Is Over Link
Ok here is HOWTODOIT
Please remember to use the Editor account before making any template changes, If you have not made an editor account yet please read HERE
Second you must have all ready a template you can edit.
If you have not done this please read HOWTODOIT
1. Goto admin panel --- 3. Styles --- Edit Templates/Logos -- the template you wish to edit (EG myff_howtodoit1)--- Submit
Now look at the top in the area marked Choose Forum template/javascript/css File to Edit use the drop down bar and find
overall_header.tpl
Now find
After place this code
| Code: | <script type="text/javascript">
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= 360;
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= "#DDECFF";
var tipBorderColor= "#000080";
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('http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg','FunnyWorld Is Coming Back Click The Link',"#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
// 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.borderColor = tipBorderColor;
tipcss.borderWidth = tipBorderWidth+"px";
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;
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() {
if (!tooltip) return;
t2=setTimeout("tipcss.visibility='hidden'",100);
tipOn = false;
}
document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
</script>
|
2. Goto admin panel --- 3. Styles --- Edit Templates/Logos -- the template you wish to edit (EG myff_howtodoit1)--- Submit
Now look at the top in the area marked Choose Forum template/javascript/css File to Edit use the drop down bar and find
viewtopic_body.tpl
Now Place This Code Where you wish it to appear.
| Code: | | <a href="http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br> |
For this example i placed it under my location, so it could look like this
| Code: | | <td width="150" align="left" valign="top" class="{postrow.ROW_CLASS}"><span class="name"><a name="{postrow.U_POST_ID}"></a><b>{postrow.POSTER_NAME}</b></span><br /><span class="postdetails">{postrow.POSTER_RANK}<br />{postrow.RANK_IMAGE}{postrow.POSTER_AVATAR}<br /><br />{postrow.POSTER_JOINED}<br />{postrow.POSTER_POSTS}<br />{postrow.POSTER_FROM}<br /><a href="http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br></span> |
Which would show it as in the pictures at the beginning of the guide.
If you wish it to appear in your profile like below
Then place this code below , where you wish it to appear
| Code: | <td valign="top" align="right" nowrap="nowrap"><span class="gen">My Game Card:</span></td>
<td> <b><span class="gen"><a href="http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br></span></td>
</tr> |
Ok all that done you now need to customise it for your own forum.
So here is HOWTODOIT
1. The popup box is controlled in the overall_header.tpl code that you put in, so all the edits you will find in the overall_header.tpl.
To make the box smaller or bigger find
| Code: | // Be sure to set tipWidth wide enough for widest image
var tipWidth= 360; |
Change 360 to suit your needs
Changing image and text
Find
| Code: | messages[0] = new Array('http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg','FunnyWorld Is Coming Back Click The Link',"#FFFFFF");
|
Image = http://funnyworld.myfreeforum.org...unnyworld3/images/funnyworld5.jpg
Text = FunnyWorld Is Coming Back Click The Link
color of text = #FFFFFF
Change to suit your needs
Ok all that done , you should now be looking in either viewtopic_body.tpl or profile_view_body.tpl depending where you placed the second code.
| Code: | | <a href="http://funnyworld.myfreeforum.org" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br></span> |
Link = <a href="http://funnyworld.myfreeforum.org"
Text = Funny World
Change to suit your needs.
Ok the last part of this guide explains how to add more than one .
1. Goto overall_header.tpl
Find the part of the code like this
| Code: | | messages[0] = new Array('http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg','FunnyWorld Is Coming Back Click The Link',"#FFFFFF"); |
Copy and paste that just below but you must remember to change the [0] to a different number each time an example is below.
| Code: | messages[0] = new Array('http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg','FunnyWorld Is Coming Back Click The Link',"#FFFFFF");
messages[1] = new Array('http://www.farnboroughinvincibles.co.uk/templates/myff_farnboroughinvincibles1/images/minilogo.jpg','farnborough Invincibles',"#FFFFFF");
messages[2] = new Array('http://forum.myfreeforum.org/templates/myff_forum4/images/myff_anim.gif','MYFF ',"#FFFFFF"); |
Now as before open up either profile_view_body.tpl or viewtopic_body.tpl and place the following code as before
| Code: | | <a href="http://funnyworld.myfreeforum.org" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br> |
And change the link and text as shown above but remember to change the
to a number that matches in the overall_header.tpl
For example the event number must match in both overall_header.tpl and in the code above
An example is here
Popup window 1
Overall_header.tpl
| Code: | | messages[0] = new Array('http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg','FunnyWorld Is Coming Back Click The Link',"#FFFFFF"); |
Viewtopic_body.tpl or profile_view_body.tpl
| Code: | | <a href="http://funnyworld.myfreeforum.org/templates/myff_funnyworld3/images/funnyworld5.jpg" onmouseover="doTooltip(event,0)" onmouseout="hideTip()">Funny World</a><br> |
Popup window 1
Overall_header.tpl
| Code: | | messages[1] = new Array('http://www.farnboroughinvincibles.co.uk/templates/myff_farnboroughinvincibles1/images/minilogo.jpg','farnborough Invincibles',"#FFFFFF"); |
Viewtopic_body.tpl or profile_view_body.tpl
| Code: | | <a href="http://www.farnboroughinvincibles.co.uk" onmouseover="doTooltip(event,1)" onmouseout="hideTip()">farnborough invincibles.co.uk</a><br> |
You can see a finished example here
http://howtodoit.myfreeforum.org/about685.html
And that`s HOWTODOIT
|
|