View Full Version : Tooltips Issue (Java mouseover popup)

08-17-2011, 12:03 PM
I'd seriously appreciate some guidance with the following:-

The site in question: http://www.professorbet.com/2010/football2010win.php

The problem: Popups work fine, as they open the mini thumbnails when you mouseover. However, as you scroll down the page, the images move with you. So, if you mouseover'd the top result (having not scrolled down) the graph would appear when it was supposed to. However, if you scrolled down 200px, and then mouseover'd the top result (or any result), the thumbnail would popup 200px lower than it should.

The guide site I used: http://www.dynamicdrive.com/dynamicindex4/imagetooltip.htm - it doesn't happen on their site (potentially because they're not as stupid as me).

I set up a dummy site of their site: http://www.professorbet.com/1.htm - I just copied the source code for everything and changed literally nothing. It still happens on my version of the site.

If this is a simple fix that anyone knows, I would love the help. If not, I'll just continue crying myself to sleep.

Thank you in advance!

<script type="text/javascript" src="ddimgtooltip.js">

* Image w/ description tooltip v2.0- (c) 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 this script and 100s more


/* Image w/ description tooltip v2.0
* Created: April 23rd, 2010. This notice must stay intact for usage
* Author: Dynamic Drive at http://www.dynamicdrive.com/
* Visit http://www.dynamicdrive.com/ for full source code

var ddimgtooltip={

var tooltips=[]
//define each tooltip below: tooltip[inc]=['path_to_image', 'optional desc', optional_CSS_object]
//For desc parameter, backslash any special characters inside your text such as apotrophes ('). Example: "I\'m the king of the world"
//For CSS object, follow the syntax: {property1:"cssvalue1", property2:"cssvalue2", etc}

tooltips[0]=["red_balloon.gif", "Here is a red balloon<br /> on a white background", {background:"#FFFFFF", color:"black", border:"5px ridge darkblue"}]
tooltips[1]=["duck2.gif", "Here is a duck on a light blue background.", {background:"#DDECFF", width:"200px"}]
tooltips[3]=["../dynamicindex17/bridge.gif", "Bridge to somewhere.", {background:"white", font:"bold 12px Arial"}]

return tooltips //do not remove/change this line

tooltipoffsets: [20, -30], //additional x and y offset from mouse cursor for tooltips


tipprefix: 'imgtip', //tooltip ID prefixes

createtip:function($, tipid, tipinfo){
if ($('#'+tipid).length==0){ //if this tooltip doesn't exist yet
return $('<div id="' + tipid + '" class="ddimgtooltip" />').html(
'<div style="text-align:center"><img src="' + tipinfo[0] + '" /></div>'
+ ((tipinfo[1])? '<div style="text-align:left; margin-top:5px">'+tipinfo[1]+'</div>' : '')
.css(tipinfo[2] || {})
return null

positiontooltip:function($, $tooltip, e){
var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1]
var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(),
x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(ddimgtooltip.tooltipoffsets[0]*2) : x
y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
$tooltip.css({left:x, top:y})

showbox:function($, $tooltip, e){
this.positiontooltip($, $tooltip, e)

hidebox:function($, $tooltip){

var tiparray=ddimgtooltip.tiparray
var $targets=$(targetselector)
if ($targets.length==0)
var tipids=[]
var $target=$(this)
$target.attr('rel').match(/\[(\d+)\]/) //match d of attribute rel="imgtip[d]"
var tipsuffix=parseInt(RegExp.$1) //get d as integer
var tipid=this._tipid=ddimgtooltip.tipprefix+tipsuffix //construct this tip's ID value and remember it
var $tooltip=ddimgtooltip.createtip($, tipid, tiparray[tipsuffix])
var $tooltip=$("#"+this._tipid)
ddimgtooltip.showbox($, $tooltip, e)
var $tooltip=$("#"+this._tipid)
ddimgtooltip.hidebox($, $tooltip)
var $tooltip=$("#"+this._tipid)
ddimgtooltip.positiontooltip($, $tooltip, e)
if ($tooltip){ //add mouseenter to this tooltip (only if event hasn't already been added)
ddimgtooltip.hidebox($, $(this))

}) //end dom ready


Old Pedant
08-18-2011, 03:17 AM
What browser are you using???

I just tested with MSIE 7, FF 3.6, and Chrome 13 and all three worked perfectly. Both your code and the original code.

08-18-2011, 09:35 AM
What browser are you using???

I just tested with MSIE 7, FF 3.6, and Chrome 13 and all three worked perfectly. Both your code and the original code.

I fixed it yesterday, but couldn't remember the URL for this site (I was at my office when I originally posted the query).

Basically, the issue was in the CSS sheet - it the position was 'fixed' when it should have been 'absolute'. Basic, I know.

Old Pedant
08-18-2011, 08:47 PM
LOL! Thanks for coming back and telling us. Glad it was an easy fix.