2009-12-17 6 views
0
<ul id="MarqueePro2"></ul> 
</ul> 
<script> 
    var speed=60; 
    var MarqueePro=document.getElementById("MarqueePro"); 
    var MarqueePro2=document.getElementById("MarqueePro2"); 
    var MarqueePro1=document.getElementById("MarqueePro1"); 
    MarqueePro2.innerHTML=MarqueePro1.innerHTML; 
function Marquee() 
{ 
    if(MarqueePro2.offsetTop-MarqueePro.scrollTop<=0) 
    { 
     MarqueePro.scrollTop-=MarqueePro1.offsetHeight; 
    } 
    else 
    { 
     MarqueePro.scrollTop++; 
    } 
} 
    var MyMar=setInterval(Marquee,speed); 
    MarqueePro.onmouseover=function() {clearInterval(MyMar)} 
    MarqueePro.onmouseout=function() {MyMar=setInterval(Marquee,speed)} 
</script> 

appers secouer sous navigateur IE.how pour résoudre le problème? et merci beaucoup!JavaScript fonction compatible problème a besoin de votre aide

+2

Qu'est-ce qui ne va pas exactement? Où ça casse? – philfreo

Répondre

0

Je ne suis pas sûr de ce que votre script a l'intention de faire, mais pour les effets Javascript, consultez les cadres:

JQUery

Prototype/Scriptaculous

Mootools

ils ont travaillé la plupart des problèmes de navigateur croisés et sont très faciles à utiliser.

1

Le comportement de scrollTop dans IE est extrêmement douteux. Deux choses peuvent l'affecter:

1) Le type de document - vous devez obtenir le bon - il semble y avoir quelques problèmes avec les DTD transitoires et lâches.

2) Si le trop-plein est réglé sur le conteneur.

Voir http://forums.digitalpoint.com/showthread.php?t=11965. Il présente une solution aux deux problèmes de scrollTop dans IE.

(Au risque d'adopter un cliché stackoverflow, vous pouvez envisager d'utiliser un framework tel que jQuery, qui éliminera beaucoup de ces inconvénients de l'équation).

0

Vous voudrez peut-être régler la vitesse sur un nombre plus élevé. Le deuxième argument à setInterval est le délai en millisecondes. 60 millisecondes est assez rapide; 50 millisecondes est 1/20ème de seconde. Peut-être essayer 100 ou 200 pour voir si les choses s'améliorent?