position: fixed
要素の上でマウスボタンを押している間にビューポートを徐々にスクロールさせるにはどうすればよいですか?ここでマウスアップまで徐々にスクロールします
答えて
あなたはsetTimeout()とclearTimeout()との組み合わせでjQuery.animate()でこれを達成することができます
$('.button').on('mousedown', function() {
console.log('Start Animate');
(function smoothSrcroll() {
console.log(Math.max($('html').scrollTop(), $('body').scrollTop()));
$('html, body').stop().animate({
scrollTop: Math.max($('html').scrollTop(), $('body').scrollTop()) + 100
}, 1000, 'linear', function() {
window.timeout = setTimeout(smoothSrcroll(), 0);
});
})();
}).on('mouseup', function() {
console.log('Stop Animate');
$('html, body').stop();
clearTimeout(window.timeout);
});
それは、FirefoxとChromeの両方で動作するように私は$('html, body')
をターゲットにしています。これは、2つのセレクタのためにanimate()
が実際に2回実行されるため、ややこしいことになります。これを解決するために私はjQuery.stop()を使用しました。 Firefoxは$('html').scrollTop()
を使用でき、Chromeは$('body').scrollTop()
を使用するため、Math.max()を使用して増分を計算しました。この関数は完了時に自己実行し、マウスが離されるとclearTimeout()
とjQuery.stop()
を使用します。
素晴らしい、ありがとう!それは少しスムーズにする方法はありますか? –
@ScottHunterデフォルトのjQueryライブラリのイージングに追加される補足的なスクリプトがあります。実際には線形、スイング、デフォルトの3つの設定しかありません。スムーズなトランジションを作成するスクリプトを見つけることができます。 – Daerik
- 1. ユーザーがスクロールしながら徐々にナビゲーションの背景を変更します
- 2. スクロールに基づいて徐々に背景色を変更します。
- 3. C#徐々にフェードフォーム
- 4. スクロールボタンが徐々にスクロールするためのスクロールボタン
- 5. Mysqlは、単一クエリで行を徐々に更新します。
- 6. グリッドビュー(UICollectionView)のオフセットがページングスクロールで徐々にシフトします
- 7. システムポーズ/スリープを使用して徐々にプロットします
- 8. 徐々にtf.Graphをビルドして実行します
- 9. イベントをHTMLテキストボックスに徐々に記録します
- 10. R:徐々に文字列
- 11. ループが徐々に減速しますか?
- 12. JPanelは徐々にテキストを表示します
- 13. Javaコントロールの色は徐々に変化します
- 14. TFrecordsでの学習は徐々に遅くなります
- 15. Javascript:徐々に各繰り返しで文字列に追加しますか?
- 16. Objective-CでUILabelが徐々に表示する数値を徐々に増やすには?
- 17. Javaでカラー画像をグレースケールに徐々にランダムに変更しますか?
- 18. Eclipseが徐々に減速する
- 19. ポイントクラウドを徐々に表示する
- 20. "For"ループ、徐々に減速する
- 21. System.Timers.Timerは徐々に間隔を広げていますか?
- 22. TCPトランザクションが徐々に長くなります
- 23. MySQLのアップデートが徐々に遅くなります
- 24. リストビュー内の行をスムーズまたは徐々に削除する
- 25. なぜこのループは徐々に遅くなりますか?
- 26. Awk getlineは徐々に時間がかかります
- 27. オーバーレイを徐々にフェードアウトさせますか?
- 28. ページの一番下にフェードイン(徐々に)
- 29. ビットマップを徐々にクリック(easeljs)に移動
- 30. 変更ビューに徐々にViewSwitcher
スクロールするとき、マウスカーソルが押されている要素から外れませんか?保持しているのではなく、「クリックする」という意味だったら、これをチェックしてください:[jQueryを使わずにスムーズにスクロールする](https://stackoverflow.com/questions/10063380/javascript-smooth-scroll-without-theuse -f-jquery)または[this](https://www.sitepoint.com/smooth-scrolling-vanilla-javascript/) –
ありがとうございますが、固定した要素になるでしょう。 –