2017-04-09 8 views
0

ビューポートの高さの3倍オーバーフローするウェブサイトがあるとします。このウェブサイトを上から下にスクロールすることができます。あなたがスクロール可能なページ上のどの垂直位置に対してdivを移動する

スクロールされたページの総量に対するビューポートの上部から下部に移動するdivを作成することはできますか?

例 - 誰かが私にthisのようなものを達成するのを手伝ってもらえますか?それがどのように行われたかわからない。

編集:

var scrollValue; 
    var percent; 

    var body = document.body, 
     html = document.documentElement; 

    var height = Math.max(body.scrollHeight, body.offsetHeight, 
    html.clientHeight, html.scrollHeight, html.offsetHeight); 

    $(document).ready(function(){ 
     $("button").click(function(){ 
        scrollValue = $("body").scrollTop(); 
        percent = (scrollValue/height) * 100; 
        alert(percent); 
     }); 
    }); 
+0

をして...あなたが直面している問題は何ですか? – bhansa

+0

申し訳ありませんが、わからない場合 - ページのどのくらいがスクロールされているかを基準にdivを移動する方法がわかりません。 @Bhansa –

答えて

1

あなたはjQueryのscrollTop()を使用してみてください。 demo at jquery.comを参照してください。

アイデア: あなたがあなたのカスタムスクロールバーの現在のスクロール位置を取得するには、この同じ機能を使用することができ、この機能の使用のタイプ(と/引数なし)の両方を理解している場合、スクロールするためにあなたのdivをトリガ相対スクロール位置に移動させる。

代替タスク:あなたはマウスホイールの移動にカスタムスクロールバーをスクロールしたい場合は、私がjquery mousewheel plugin使用することをお勧めします -

$(window).mousewheel(function(turn, delta) { 

    if (delta == 1) // going down 
    else //going up 

    // all kinds of code 

    return false; 
}); 
+0

ありがとう!私は、ボタンがクリックされたときにどこにあるべきかdivが動くデモを手に入れました...スクロールアクションが起こるたびにそれを更新する方法はありますか? @Partharajdeb –

+0

アップデートを確認してください。 –

+0

編集した質問に記載したコードを見てください。私は、ボタンの現在のスクロールバーの位置を取って、ページの高さを見つけ、スクロールバーが座っているページのパーセンテージを与えるために、スクロールバーの位置をページの全高さで割っています。しかし、ボタンを押すことは非常に実用的ではないため、ユーザーがスクロールするたびに自動的に更新されます。毎秒何千回もループを鳴らすためにタイムアウトを使用するだけでいいですか?それは正しいとは思わない。 –