2017-05-29 20 views
1

他のdiv(id="one")がブラウザウィンドウの下にスクロールすると、特定のdiv(id="text1")に属性を追加したいとします。 「1」の下端がブラウザウィンドウの下端より下にスクロールすると、再び属性を削除する必要があります。divの下部がブラウザウィンドウの下にスクロールしたときに属性を追加する

この私が希望の属性が追加されたり削除されます。

data-scroll-speed="2" 

See example here

+0

を解決するために、この記事をチェックしてください#two.offset().topouterHeight()

を取得する必要があります.com/questions/44256564/change-color-of-when-specific-pointのときにテキストを変更するとき) – Eddy

答えて

1

第一:あなたはjqueryの

第二を含める必要があります:あなたは、ウィンドウを使用する必要がありますscrollイベント

第三: を[HERE](HTTPS:// stackoverflowのデモ

$(document).ready(function(){ 
 
    $(window).on('scroll' , function(){ 
 
    var WindowScrollTop = $(this).scrollTop(), 
 
     Div_one_top = $('#one').offset().top, 
 
     Div_one_height = $('#one').outerHeight(true), 
 
     Window_height = $(this).outerHeight(true); 
 
    if(WindowScrollTop >= (Div_one_top + Div_one_height) - WindowScrollTop){ 
 
     $('#one').css('background' , 'red'); 
 
     $('#text1').removeAttr('data-scroll-speed'); 
 
    }else{ 
 
     $('#one').css('background' , 'black'); 
 
     $('#text1').attr('data-scroll-speed', '2'); 
 
    } 
 
    }).scroll(); 
 
});
#one { 
 
    height: 120vw; 
 
    width: 100%; 
 
    top: 0px; 
 
    background-color: pink; 
 
} 
 

 
#text1 { 
 
    width: 100%; 
 
    font-size: 9em; 
 
    margin-top: 100vw; 
 
    position: absolute; 
 
\t color:white; 
 
} 
 

 
#two { 
 
    height: 50vw; 
 
    width: 100%; 
 
    top: 0px; 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="one"> 
 
    <div id="text1"> 
 
     this is my text 
 
    </div> 
 
</div> 
 
<div id="two"> 
 

 
</div>

+0

ありがとう、@ Mohamed-Yousef、しかし "1"は常にスクロールウインドウより高い。 "one"のボトムラインがスクロールウインドウのボトムラインより上にあるときに追加する属性が必要です。そして、 "one"のボトムラインがスクロールウインドウのボトムラインの下にあるとき、属性は再び削除されました。 – Eddy

+0

私が指摘しているように@Eddy *必要に応じて追加/削除属性を逆にする必要があるかもしれません。* ..回答更新 –

+0

解決策:https://stackoverflow.com/questions/44256564/changing-color- div-is-scroll-above-certain-pointのテキストの場合 – Eddy

関連する問題