2016-10-24 9 views
0

私はウェブサイトを作成しています.3つのセクションのそれぞれは、ページ全体のスクロールがロックされ、マウスホイールイベント(https://gyazo.com/03bf86d55006c749cafff0299d67bc50を参照)を使用して、ユーザーがブートストラップカルーセルスライドをスクロールすることができます。しかし、セクションが一番上に達すると、スクロールが完全ではなく、しばしば修正されない部分はありません。セクション全体をスキップするようになります。要素がウィンドウの最上部にあるときにスクロールし、ブートストラップカルーセルをスクロールしてから、ページをスクロールし続けます。

機能は、すべてのスクロール上で実行されます。

$(window).scroll(function(){ 
    setTimeout(function(){ 

     scrollExploration(); 
     scrollCross(); 
     scrollConception(); 

    }, 80); 
}) 

スクロール*();関数は基本的に、セクションの1つが最上部に10ピクセル以内にあるかどうかをチェックし、そうであれば要素を一番上にスクロールし、スクロールをロックしてユーザーが次のスライドまでスクロールし、 。 3番目のスライドに移動すると、スクロールが解除され、次のセクションに進むことができます。これが実際に繰り返されます。

問題は、すべての時間を上にロックし、スキップしないようにする方法を考え出しています(ユーザーがあまりにも速くスクロールし、関数が時間通りに実行されないと、セクションがウィンドウの上部の10ピクセルの範囲内にあるかどうかを確認するためにチェックをアクティブにする)、しばしば次のセクションにスクロールしようとしているセクションの3番目のスライド上にスティックまたはジャンプする(おそらく、スクロールして現在のセクションに保持しているとき)。

+0

を持つクラスを追加/削除するには、あなたの質問を明確にする可能性のある方法はありますか?私の答えはあなたが探していたものだと思ったが、明らかに間違っていた。あなたの質問は不明です。 – Andrew

答えて

-1

必要に応じて、このクラスを削除/追加することにより、スクロールを無効にすることができ

body.noscroll { 
    position: fixed; 
    overflow-y: scroll; 
    width: 100%; 
} 

そして$.addClass()$.removeClass()、または$.toggleClass()

+0

なぜこれがすぐに下落したのですか? – Andrew

関連する問題