2012-05-10 4 views
1

私はいくつかのデザインを微調整する必要があるWebアプリケーションを作成しています。 http://jsfiddle.net/rkumarnirmal/FSDPH/移動可能なjqueryボックスをページ外に移動しないでください

ここに示されている黒い移動可能なボックスはページから移動してはいけませんが(少しでもそうではありません)、そこにチェックを入れると、ボックスを移動して幾分外に出すことができますページ。どうすればそれを制御できますか?

さらにもう1つ、jPickerツールhttp://www.digitalmagicpro.com/jPicker/をそのボックスに実装します。カラーボックスをクリックすると、jPickerツールがポップアウトされ、ボックスが移動された場合、jPickerツールはページに従って配置する必要があります。

これは公平ではないように私は質問を知っているが、私はチャンスを持っていない:(誰も私を案内してもらえますか?

は感謝!

+0

「jPicker」を別の質問に移動する必要があると思います。一度に1つの質問。あなたの質問の下で 'edit'を使うことができます。 – kapa

答えて

2

あなたはドラッグ可能な要素を内部に保持するためにdraggablecontainmentプロパティを使用することができますその親の1

例:コード全体をやっ

$("#box_bg").draggable({scroll: false, cancel: "div#box", containment: 'document'}); 
+0

今すぐコードを確認してくださいhttp://jsfiddle.net/rkumarnirmal/FSDPH/2/ドラッグは完璧ではありません。 – rnk

+0

完璧です。 [デモ](http://jsfiddle.net/FSDPH/3/)。マージンを取り除いて、「上」と「左」に置き換えました。 – kapa

+0

もう一度手伝ってください。ボックス内アコーディオンヘッダーをクリックすると、アクティブなアコーディオンの選択枠が表示されます。それを取り除くには? – rnk

1

は現在可能ではない私はGIVです。あなたに論理を伝えてください。あなたは簡単にそれを行うことができます。

オーバーレイのドラッグイベントを追跡する必要があります。イベントハンドラでは、オーバーレイの左上の位置を確認する必要があります。あなたの限界を超えた場合は、左/上を0(またはいくらかのオフセット)に設定します。

極端な右(または下)を超えている場合は、ウィンドウの幅(または高さ)からオーバーレイの幅(または高さ)を引いた値を設定する必要があります。

カラーピッカーと同じです。しかし、ドラッグイベントの代わりに、カラーピッカーが表示されたときに再配置を実行する必要があります。

+1

@lmdadありがとう!良いテクニック。私はこれを試してみます:) – rnk

+0

もう一つの問題にあなたの賛成が必要です。ボックス内アコーディオンヘッダーをクリックすると、アクティブなアコーディオンの選択枠が表示されます。それを取り除くには? – rnk

+1

アクティブなパネルに余分なボーダーが表示されません。 あなたの側に余分なボーダーがある場合は、CSSで削除することができます。 #box_bg .ui-accordion-header.ui-state-active { border:none; } ここに任意のスタイルを適用できます – Imdad

関連する問題