Forum Moderators: open

Message Too Old, No Replies

Mouseover and IE6

Mouseover and IE6

         

laural40705

4:28 pm on Feb 28, 2008 (gmt 0)

10+ Year Member



I have a javascript that works in all browsers except IE6. It is supposed to show a column of graphics, when you mouseover one of the graphics a new div opens up and there is text describing the graphic.

I don't know enough about javascript to know if there is something else I need to do to get this to work in IE6 - can anyone help?

All code is posted below:

Here is the javascript:

/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var dhtmlgoodies_slideSpeed = 10; // Higher value = faster
var dhtmlgoodies_timer = 10; // Lower value = faster

var objectIdToSlideDown = false;
var dhtmlgoodies_activeId = false;
var dhtmlgoodies_slideInProgress = false;
function showHideContent(e,inputId)
{
if(dhtmlgoodies_slideInProgress)return;
dhtmlgoodies_slideInProgress = true;
if(!inputId)inputId = this.id;
inputId = inputId + '';
var numericId = inputId.replace(/[^0-9]/g,'');
var answerDiv = document.getElementById('dhtmlgoodies_a' + numericId);

objectIdToSlideDown = false;

if(!answerDiv.style.display ¦¦ answerDiv.style.display=='none'){
if(dhtmlgoodies_activeId && dhtmlgoodies_activeId!=numericId){
objectIdToSlideDown = numericId;
slideContent(dhtmlgoodies_activeId,(dhtmlgoodies_slideSpeed*-1));
}else{

answerDiv.style.display='block';
answerDiv.style.visibility = 'visible';

slideContent(numericId,dhtmlgoodies_slideSpeed);
}
}else{
slideContent(numericId,(dhtmlgoodies_slideSpeed*-1));
dhtmlgoodies_activeId = false;
}
}

function slideContent(inputId,direction)
{

var obj =document.getElementById('dhtmlgoodies_a' + inputId);
var contentObj = document.getElementById('dhtmlgoodies_ac' + inputId);
height = obj.clientHeight;
if(height==0)height = obj.offsetHeight;
height = height + direction;
rerunFunction = true;
if(height>contentObj.offsetHeight){
height = contentObj.offsetHeight;
rerunFunction = false;
}
if(height<=1){
height = 1;
rerunFunction = false;
}

obj.style.height = height + 'px';
var topPos = height - contentObj.offsetHeight;
if(topPos>0)topPos=0;
contentObj.style.top = topPos + 'px';
if(rerunFunction){
setTimeout('slideContent(' + inputId + ',' + direction + ')',dhtmlgoodies_timer);
}else{
if(height<=1){
obj.style.display='none';
if(objectIdToSlideDown && objectIdToSlideDown!=inputId){
document.getElementById('dhtmlgoodies_a' + objectIdToSlideDown).style.display='block';
document.getElementById('dhtmlgoodies_a' + objectIdToSlideDown).style.visibility='visible';
slideContent(objectIdToSlideDown,dhtmlgoodies_slideSpeed);
}else{
dhtmlgoodies_slideInProgress = false;
}
}else{
dhtmlgoodies_activeId = inputId;
dhtmlgoodies_slideInProgress = false;
}
}
}

function initShowHideDivs()
{
var divs = document.getElementsByTagName('DIV');
var divCounter = 1;
for(var no=0;no<divs.length;no++){
if(divs[no].className=='centerHeading'){
divs[no].onmouseover = showHideContent;
divs[no].id = 'dhtmlgoodies_q'+divCounter;
var answer = divs[no].nextSibling;
while(answer && answer.tagName!='DIV'){
answer = answer.nextSibling;
}
answer.id = 'dhtmlgoodies_a'+divCounter;
contentDiv = answer.getElementsByTagName('DIV')[0];
contentDiv.style.top = 0 - contentDiv.offsetHeight + 'px';
contentDiv.className='detailBox';
contentDiv.id = 'dhtmlgoodies_ac' + divCounter;
answer.style.display='none';
answer.style.height='1px';
divCounter++;
}
}
}

window.onload = initShowHideDivs;

Here is that part of my page:

<h1>Site Search</h1><img src="images/centers/search.jpg" alt="Site Search" class="right">

<div class="detailBox">
<div>
<p><form action="searchPageAdv.php" method="get" name=searchAdvanced>
<fieldset>
<input name="field" class="field" onclick="this.value='';" value="Search..." />
<input name="page" class="field" value=1 type="hidden">
<input type="submit" name="button" class="button" value="GO!" /> <span class="aslink"><a href="searchPageAdvanced.php">Advanced Search</a></span></fieldset>
</form></p>
</div>
</div>

h1>Homework Helpline</h1>
<img src="images/centers/homeworkHelpline1.jpg" alt="Homework Helpline Icon" class="right">

<div class="detailBox">
<div>
<p>If you are stuck and cannot do your homework, you've come to the right place. </p><p><a href='centersDetail.php?idModule=m9010&nameModule=Homework Helpline&idElement=117&nameElement=Homework%20Helpline&recid=35390'>Click here...</a></p>
</div>
</div>

<h1>Live Connect</h1><img src="images/centers/liveConnect.jpg" alt="Live Connect Icon" class="right">

<div class="detailBox">
<div>
<p>Click here to 'instant message' our work-life Consultants with questions.</p>
</div>
</div>

le_gber

4:06 pm on Feb 29, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi laural40705 and welcome to WebmasterWorld [webmasterworld.com].

Have you tried the script with IE6 on the original website (DHTML Goodies)? Does it work or is it not working either? If it works, have you changed anything in the script when you implemented it?

laural40705

5:47 pm on Feb 29, 2008 (gmt 0)

10+ Year Member



Hi, it I did go back to the original site - it did not work in 6 for them... I changed the div names and the onClick to an onMouseOver - and it works on all other browsers (gotta love ie6) :)

le_gber

6:00 pm on Feb 29, 2008 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



well if it didn't work for them it won't work for you ;)

laural40705

6:10 pm on Feb 29, 2008 (gmt 0)

10+ Year Member



That's ok, I have found another solution today that I think will do fine - I was just hoping for the other so I wouldn't have to redo my work... :)