2016-07-20 15 views
0

上スクロールから:防止divの私は、次のコード持っている別のdiv

<div id="header"> 
    Header 
</div> 
<div id="leftside"> 
    Left Side 
<!--A lot of text here.--> 
</div> 
<div id="right-container"> 
    <div id="one"> 
    One 
    </div> 
    <div id="two"> 
    Two 
    </div> 
</div> 
<div id="footer"> 
    Footer 
</div> 
#header { 
    background-color: blue; 
    color: white; 
    width: 80%; 
    height: 100px; 
    padding: 5px; 
} 

#leftside { 
    display: inline-block; 
    background-color: purple; 
    color: white; 
    width: 39%; 
    padding: 5px; 
    vertical-align: top; 
} 

#right-container { 
    display: inline-block; 
    background-color: green; 
    color: white; 
    width: 39%; 
    padding: 5px; 
} 
body{height:400px;} 
#one { 
    background-color: yellow; 
    color: white; 
    width: 97%; 
    height: 50px; 
    padding: 5px; 
} 

#two{ 
    background-color: orange; 
    color: white; 
    width: 37%; 
    height: 500px; 
    padding: 5px; 
    position: fixed; 
} 

#footer { 
    background-color: grey; 
    color: white; 
    width: 80%; 
    height: 500px; 
    padding: 5px; 
} 

$(document).scroll(function() { 
    var $self = $("#two"); 
    $self.css('margin-top', 0); 
    var twoOffset = $self.offset().top + $self.outerHeight(true); 
    if (twoOffset > ($("#footer").offset().top - 30)) { 
     $self.css('margin-top', -(twoOffset - $("#footer").offset().top)); 
    } else { 
     $self.css('margin-top', '30px'); 
    } 
}); 

JSFIDDLE hereを参照してください。

divは divをスクロールしないようにdiv(id="two")を禁止します。

しかし、このJSFIDDLEで起きているように、div(id="two")がdivの上にスクロールしないようにしたい(id="one")。

私は同じスクリプトをそれに使うことができると思いますが、私はそれをsuccesなしで適応しようとしました。あなたは助けてもらえますか?

答えて

2
var i = $('#one').offset().top; 
var x = $('#two').offset().top; 
var y = $('window').scrollTop(); 

$(window).scroll(function(){  
    $(this).scrollTop(function(){ 
     if (y <= y || x <= i) { 
      $('#two').css('position','static'); 
     }  
    }); 
}); 
+0

感謝を行うことを助言します。これはどこに置かれますか?おそらくあなたはJSFIDDLEを更新できますか? – Eddy

+0

それは動作していないようだ、または私はそれを間違ってやっている – Eddy

0

あなたの右のコンテナは台無しに見えます。 私はあなたがhttp://leafo.net/sticky-kit/を使用すると、モハメドを

$("#two").stick_in_parent(); 
+0

ありがとう、サイモン。良い見えますが、まだ機能することはできません。 – Eddy

+0

これは少しバグが残っています。最初に一度スクロールした後にのみ、正しく応答します。最初は粘着性の要素が親の端を越えて行きます。スクロールしてもう一度試してみると、正常に動作します。 – Eddy

+0

最近のコードを共有できますか? –

関連する問題