2016-09-22 7 views
1

私はピンクとスカイブルーの2つのdivを持っていますが、それらの高さと幅を同じにします。ピンクdivは私の画面の高さをほぼカバーしています。スクロールバーが空の青色に達すると、右に青いdivが表示され、そのスクロールバーがそのdivを離れるとき、divが元の位置に戻るようにします。あなたはこのロジックを適用することができますアニメーションはページのスクロールでは機能しません

$(document).ready(function(){ 

$(window).scrollTop(function(){ 

$(this).scroll(function(){ 

var scrollTopOrBottom = $(document).height() - $(window).height() - $(window).scrollTop(); 

    if(flag === 0 && scrollTopOrBottom < 1256){ 
    $('#blueDiv').animate({right: '200px'}, function(){ 
     flag = 1; 
    }); 
} 

if(flag === 1 && scrollTopOrBottom < 740){ 
    console.log(scrollTopOrBottom); 
$('#blueDiv').slideLeft(); 
    flag = 0; 
    }  

    }); 
    }); 

}); 

JS FIDDLE

答えて

1

  1. 使用transitionそのため、このようないくつかのCSS要素をアニメーション化する:

    #blueDiv { 
        width: 50%; 
        height: 100px; 
        background-color: blue; 
        position: absolute; 
        left:0; 
        transition:left 2s linear; 
    } 
    #blueDiv.right { 
        left:50% 
    } 
    
  2. jQueryのチェック付きの要素空が上からどれだけ離れていて、eをトリガするか

    $(window).scroll(function() { 
        var offT = $('#two').offset().top - $(window).height(), 
         scrT = $(window).scrollTop(); 
        if(scrT >= offT) { 
         $('#blueDiv').addClass('right') 
        } else { 
         $('#blueDiv').removeClass('right') 
        } 
    }); 
    

Jquery Demo

+0

それは私が –

+0

ちょうど1つのより多くの事、どのようにすることができ、それが前方に来るよう後方つもりはない私の事をしたいのですほとんど何:スクロールはそれに達した場合にベント戻って、私はスライドバックを意味する –

+0

@mohsinaliそれは要素が表示されていない後に戻ります – DaniP

関連する問題