pageYOffset IE8中的滚动和动画

Sha*_*sky 9 jquery internet-explorer-8

我正在进行滚动页面设计,我有以下Javascript隐藏并显示一个对话框:

        if(window.pageYOffset >= 300){

            $('#m1').fadeIn('slow');

    }

    if(document.documentElement.scrollTop >=300){

        $('#m1').fadeIn('slow');

    }
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,FF,IE9 +

但是,在IE8,7中它只是有点工作.它正确显示和隐藏元素,但是在评估滚动位置和隐藏元素之间的延迟是可怕的.此外,没有褪色,只是发生了.

我想知道它是否只是我需要处理的IE8问题,或者是否有办法让我用IE8实现被动,干净的淡入淡出.

und*_*ned 26

pageYOffset并且pageXOffset在IE8和之前不支持,请尝试此功能:

// Return the current scrollbar offsets as the x and y properties of an object
function getScrollOffsets() {

    // This works for all browsers except IE versions 8 and before
    if ( window.pageXOffset != null ) 
       return {
           x: window.pageXOffset, 
           y: window.pageYOffset
       };

    // For browsers in Standards mode
    var doc = window.document;
    if ( document.compatMode === "CSS1Compat" ) {
        return {
            x: doc.documentElement.scrollLeft, 
            y: doc.documentElement.scrollTop
        };
    }

    // For browsers in Quirks mode
    return { 
        x: doc.body.scrollLeft, 
        y: doc.body.scrollTop 
    }; 
}
Run Code Online (Sandbox Code Playgroud)