コンテナdivがページを上下にスクロールすると、「固定された」黄色のボックスを維持しようとしていますが、画面上のコンテナで上下に移動します。これは、スロースクロールでは機能しますが、高速スクロールでは機能しません。コードを速く確実に実行するために、または画面のスクロールをよりゆっくりと行うために、自分のコードにできることはありますか?クイックスクロールでjQueryスクロール機能を起動するにはどうすればよいですか?
HTML:
<div id="container">
<div id="purple"></div>
<div id="yellow"></div>
<div id="green"></div>
</div>
CSS:
#container{
margin-top:500px;
margin-bottom:500px;
height:1000px;
width:600px;
background-color:blue;
position:relative;
}
#purple{
height:10px;
width:10px;
background-color:purple;
position:absolute;
margin-right:50px;
}
#green{
height:10px;
width:10px;
background-color:green;
position:absolute;
bottom:0;
}
#yellow{
width:100px;
height:100px;
background-color:yellow;
margin-top:50px;
position:absolute;
left:0px;
}
のjQuery:
var distance = $('#purple').offset().top;
var distance2 = $('#green').offset().top;
$window = $(window);
$window.scroll(function() {
if ($window.scrollTop() >= distance) {
$("#yellow").css("position","fixed");
$("#yellow").css("margin-left",'8px');
$("#yellow").css("top",'0px');
}
if (($window.scrollTop() - distance <= 15)&& ($window.scrollTop() >= distance2 - 1000)) {
$("#yellow").css("position","absolute");
$("#yellow").css("top","15px");
$("#yellow").css("margin-left",'0px');
$("#yellow").css("bottom","auto");
}
if ($window.scrollTop() >= distance2 - 180 ) {
$("#yellow").css("position","absolute");
$("#yellow").css("top","auto");
$("#yellow").css("margin-left",'0px');
$("#yellow").css("bottom",'40px');
}
});
はここでフィドルです:https://jsfiddle.net/7nfyu4ys/1/
は、それは私のコードです、またはjQueryのは、単に動作しませんこれは時々?
解決しました。私の&&句は必要ありませんでした。無視する... – JohnG