2

jQueryUIDraggableウィジェットを使用しています。自動スクロールを追加する必要があることを除けば、うまく機能しています。つまり、ドラッグ中に、マウスがウィンドウの上部または下部にあるときにブラウザウィンドウをスクロールしたいと思います。

私はCとC++でこのようなことをした経験がたくさんあります。ドラッグ操作が進行中であることを示すフラグを設定します。マウス移動メッセージハンドラーで、タイマーを設定します。そして、タイマーのハンドラーで、ウィンドウを適切な方向にスクロールします。マウスが「トリガー」領域を離れたときにタイマーをシャットダウンします。マウスが動かなくてもスクロールが定期的に行われるようにタイマーを使用します。

jQueryとDraggableウィジェットを使用してこれを開始する方法について誰かが提案できますか?マウス移動ハンドラーはありますか?マウスがウィンドウの上部にあるのか下部にあるのかわかりますか?また、ブラウザウィンドウをスクロールできますか?そして、タイマーの問題はどうですか?「トリガー」領域にいくつかのオーバーレイを表示することも考えられますが、私のjQueryスキルは多少制限されています。または、さらに良いことに、誰かがすでにこのようなことをしたと確信しています。例はありますか?

注:Draggableウィジェットは自動スクロールをサポートしていますが、コンテナー要素をスクロールします。ブラウザウィンドウをスクロールする必要があります。

編集

封じ込めオプションを「ドキュメント」に設定しようとしましたが、目立った効果はありませんでした。

$('.drag-handle').draggable({ 
  axis: "y",
  containment: "document",
  scroll: true,
  helper: buildHelper
});
4

1 に答える 1

2

基本的に、それはあなたのコードで動作しています:http: //jsfiddle.net/DgzAHですが、自動スクロールをアクティブにするには、ユーザーは常にマウスを少し動かす必要があります。

div数か月前に、マウスを動かさずに要素がドラッグされているときにスクロールするコードを作成しました。

マウスを動かさずに要素をドラッグしているときにdivをスクロールします

アイデアは、ドラッグされた要素の位置を確認しsetInterval、ドラッグイベントの位置が私の境界線の70pxにあるときに関数を作成することdivです。あなたの場合、ページラッパーまたは直接body:http://jsfiddle.net/pPn3v/22/

于 2013-01-11T08:04:18.530 に答える