PDA

View Full Version : Integrating Cool DHTML Tooltip II into a .soy templates (jive platform)



deslyxia
09-26-2012, 03:58 PM
1) Script Title: Cool DHTML Tooltip II

2) Script URL (on DD): http://www.dynamicdrive.com/dynamicindex5/dhtmltooltip2.htm

3) Describe problem: I am working in the jive 5.0.3 platform with .soy templates I cannot get this tooltip to work.

I have broken the script out into a seperate .js file ... then because I was having issues with the variables not being available I took the variables out of that js and created a script to make them.

I am no longer seeing errors all over the place in firebug .... but i am also not seeing my tooltips either...

below is the code as i have it currently... Im thinking there is an issue with where the following statements are placed but im not sure .



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


External CSS file Excerpt:



/* Tooltips */
#dhtmltooltip{
position: absolute;
left: -300px;
width: 150px;
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
visibility: hidden;
z-index: 100;
/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
}

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


.soy Template


{template .body}
<script src="/book/plugins/book-type-plugin/resources/soy/widget/dtest.js"></script>
<script>
var enabletip = false;
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var tipobj="";
var pointerobj="";
var offsetfromcursorX=12; //Customize x offset of tooltip
var offsetfromcursorY=10; //Customize y offset of tooltip
var offsetdivfrompointerX=10; //Customize x offset of tooltip DIV relative to pointer image
var offsetdivfrompointerY=14; //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="arrow2.gif">'); //write out pointer image

$j(document).ready(function(){lb}

ie=document.all;
ns6=document.getElementById && !document.all;
enabletip=false;
if (ie||ns6) {lb}
tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "";
{rb}

pointerobj=document.all? document.all["dhtmlpointer"] : document.getElementById? document.getElementById("dhtmlpointer") : "";
{rb});
</script>

<div class="jive-foo-widget-wrapper clearfix">


<p class="hide">{i18nText('global.title')}{i18nText('global.colon')} {$title}</p>
<p class="hide">{i18nText('global.message')}{i18nText('global.colon')} {$message}</p>

{foreach $book in $books}

<div class="book_contain_back">
<div class="book_container">
<a href={buildUrl($book.link)|noAutoescape} class="book_cover" onMouseover="ddrivetip('Title: {$book.book.title} <br> Author: {$book.book.authorFirstName} {$book.book.authorLastName} ', 250)"; onMouseout="hideddrivetip()">
<img {$book.image |noAutoescape} height=150px width=120px />
</a>
</div>
</div>
{/foreach}


</div>
{/template}


.js File


/***********************************************
* 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
***********************************************/



function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thewidth, thecolor){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
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