0
リスト項目が動的に追加されるスクロールボックスがあります。私はスクロールボックスの高さを追跡するために、その上にプログレスバーを配置しました。私はscrollHeight
を使ってスクロールボックスの現在の高さを取得しています。jQuery:scrollHeightを使用して高さを取得するスクロール中にプログレスバーがちらつく
私がここで直面している問題は、スクロールボックスをスクロールするとプログレスバーがちらつくことです。また、ボックスがスクロールしないようにします。しかし、私はスクロールボックスの正しい高さを取得します。 scrollHeight
から高さを取得する代わりに乱数を置き換えた場合、進行状況バーはスムーズな遷移を示します。
コードの問題点は何ですか?ありがとう!
HTMLコード:
<div class = "outer-box">
<progress class = "progress_bar" id = "progressbar" value="0" max="100"></progress>
<div class="scrollBox">
<div class = "scroll_text">
<ul>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
<li class = "chat_item" id = "sample"> <p class = "chat_text"> Hey there ! I am blah blah blah..cool'</p></li>
</ul>
</div>
</div>
</div>
のjQueryコード:
$(".scrollBox").scroll(function() {
var s = $(".scrollBox").scrollTop(),
d = $(".scrollBox").scrollTop($(".scrollBox"))[0].scrollHeight,
c = $(".scrollBox").height(),
scrollPercent = (s/(d-c)) * 100;
var position = scrollPercent;
$("#progressbar").attr('value', position);
});
ここで働いてデモです:あなたはscrollTop
の新しい値を設定している3行目にjsfiddle.net
これは動作します。ありがとう! Btw、どうやって設定されていますか?構文は、 '.scrollTop(value)' - スクロールバーを設定する新しい位置を示す数字です。これは 'd = $(" scrollBox ")ではなく、scrollTop($(" scrollBox ")[0] .scrollHeight)'です。かっこは異なる。 –
@build_code実際は同じです。この行を2つに分割すると、次のようになります: 'var scrollTop = $(" scrollBox ")[0] .scrollHeight'その後、この値を' scrollTop' - '$(" scrollBox ").scrollTop(scrollTop)' – t1m0n
これは同じですか?興味深い..ありがとう! –