2009-07-07 8 views
0

Site Web est disponible à http://danrowley.net/backstop_sandbox/Menu Javascript ne fonctionne pas dans IE8

Le menu déroulant ne reste pas ouvert quand vous allez à la souris dessus.

Javascript est:

var DDSPEED = 10; 
var DDTIMER = 15; 

// main function to handle the mouse events // 
function ddMenu(id,d){ 
    var h = document.getElementById(id + '-ddheader'); 
    var c = document.getElementById(id + '-ddcontent'); 
    clearInterval(c.timer); 
    if(d == 1){ 
    clearTimeout(h.timer); 
    if(c.maxh && c.maxh <= c.offsetHeight){return} 
    else if(!c.maxh){ 
     c.style.display = 'block'; 
     c.style.height = 'auto'; 
     c.maxh = c.offsetHeight; 
     c.style.height = '0px'; 
    } 
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER); 
    }else{ 
    h.timer = setTimeout(function(){ddCollapse(c)},50); 
    } 
} 

// collapse the menu // 
function ddCollapse(c){ 
    c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER); 
} 

// cancel the collapse if a user rolls over the dropdown // 
function cancelHide(id){ 
    var h = document.getElementById(id + '-ddheader'); 
    var c = document.getElementById(id + '-ddcontent'); 
    clearTimeout(h.timer); 
    clearInterval(c.timer); 
    if(c.offsetHeight < c.maxh){ 
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER); 
    } 
} 

// incrementally expand/contract the dropdown and change the opacity // 
function ddSlide(c,d){ 
    if(d>0) c.style.display='block'; 
    var currh = c.offsetHeight; 
    var dist; 
    if(d == 1){ 
    dist = (Math.round((c.maxh - currh)/DDSPEED)); 
    }else{ 
    dist = (Math.round(currh/DDSPEED)); 
    } 
    if(dist <= 1 && d == 1){ 
    dist = 1; 
    } 
    c.style.height = currh + (dist * d) + 'px'; 
    c.style.opacity = currh/c.maxh; 
    c.style.filter = 'alpha(opacity=' + (currh * 100/c.maxh) + ')'; 
    if((currh + (dist * d))<10 && d<0) c.style.display='none'; 

    if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){ 
    clearInterval(c.timer); 
    } 
} 
+0

Quel est votre problème? Fonctionne comme un charme dans mon IE8 (et FF3). – Boldewyn

+0

Juste une suggestion: Les questions obtiennent plus de «personnalité», si votre nom d'utilisateur n'est pas «inconnu (yahoo)», Dan. – Boldewyn

Répondre

1

peut-être tout à fait (ne pas IE8 à portée de main, j'ai peur) c'est parce que vous déclenchement onmouseout sur l'en-tête après onmouseover sur le contenu, probablement en raison de la mise en page mais , hé, c'est IE.

Pour être honnête cependant, il est déconseillé de réinventer la roue ici - je vous conseille fortement d'obtenir juste un widget menu mature de jQuery ou similaire.

0

Une chose que vous pourriez essayer est de changer la compatibilité. Allez dans Outils (menu déroulant) - cliquez sur Affichage de compatibilité.

Cela a résolu mes problèmes et pas besoin de modifier les paramètres.

Bonne chance

Questions connexes