0

ユーザーが下にスクロールしているときにスクロールで要素(#topNav)をフェードインしようとしているだけで、ユーザーが上にスクロールしてscrollTopにヒットすると、フェードアウトします。下にスクロールするとフェードインします。上にスクロールするとフェードアウトします。

しかし、それは両方向にフェードインしていますか?

私は何を間違っていますか?

function scrollFunc(e) {
    if ( typeof scrollFunc.x == 'undefined' ) {
        scrollFunc.x=window.pageXOffset;
        scrollFunc.y=window.pageYOffset;
    }
    var diffX=scrollFunc.x-window.pageXOffset;
    var diffY=scrollFunc.y-window.pageYOffset;

    if(diffX<0){
        // Scroll right
    }
    else if(diffX>0){
        // Scroll left
    }
    else if(diffY<0){
                    // scroll down
        $('#topNav').fadeIn();
    }
    else if(diffY>0){
        // Scroll up
        if(document.body.scrollTop === 0){
                            //reached top
            $('#topNav').fadeOut();
        }
    }
    else{
        // First scroll event
        $('#topNav').css('position','fixed').show().fadeIn();
    }
    scrollFunc.x=window.pageXOffset;
    scrollFunc.y=window.pageYOffset;
}
window.onscroll=scrollFunc;
4

2 に答える 2

1

jsfiddleでコードを試してみたところ、うまくいったので、おそらくバージョンの問題だと思います。
jQuery のバージョンとブラウザは?

//some code required by SO

于 2013-04-10T05:03:27.083 に答える
1

同じことを達成しようとしていたので、この問題を修正しました。ただし、これは jQuery に依存します。フェード機能を使用しているため、jQuery が既にリンクされていると仮定します。

$(document).ready(function() {
    $(window).scroll( function(){
        if($(window).scrollTop()>0){
            $("#topNav").fadeIn();
        }
        else{
            $("#topNav").fadeOut();
        }
    });
});
于 2013-04-11T06:39:58.713 に答える