2010-08-06 5 views
0

J'ai écrit une fonction scrollSpy qui détecte l'activité de l'utilisateur lorsqu'ils font défiler vers le haut et vers le bas sur une page Web.I.E problème de position css lors du défilement

<script type="text/javascript"> 
function yPos() { 
    var pos = 0; 
    if(typeof(window.pageYOffset) == 'number'){ 
    //Netscape compliant 
    pos = window.pageYOffset; 
    } else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) { 
    //DOM compliant 
    pos = document.body.scrollTop; 
    } else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) { 
    //IE6 standards compliant mode 
    pos = document.documentElement.scrollTop; 
    } 
    return pos; 
} 

window.onscroll = function(){ 
    var scrollPos = yPos(), goTopElem = document.getElementById('scroll'), docBody = document.getElementsByTagName('body')[0]; 
    if(goTopElem && scrollPos < 500)    // user has scrolled up 
    goTopElem.parentNode.removeChild(goTopElem); // remove go to top link 

    else if(scrollPos > 500 && !goTopElem){ 
    var newDiv = document.createElement('DIV'), newLink = document.createElement('A'), txt = document.createTextNode('[back to top]'); 

    newLink.setAttribute('href','javascript:scroll(0,0);'); 
    newLink.appendChild(txt); 
    newDiv.setAttribute('id','scroll'); 
    newDiv.appendChild(newLink); 
    docBody.appendChild(newDiv); 
    } 
} 
</script> 
<style type="text/css"> 
#scroll { 
    position:fixed; 
    right: 0px; 
    bottom: 0px; 
    display: block; 
} 
    </style> 

Le problème est avec Internet Explorer, lors du défilement vers le bas un lien doit apparaître dans le coin en bas à droite de la fenêtre - mais cela ne se produit pas. S'il vous plaît aider.

Répondre

1

Si vous utilisez IE6 ou un ancien IE7, alors position: fixed n'est pas supporté. Si ce n'est pas le cas, veuillez mettre à jour la question avec plus de détails sur la version de IE dont vous parlez.

Questions connexes