19
jQueryプラグインをビルドしようとしています。これは、四角形(または境界線付きのdiv)をドラッグして描画することができますが、どうすればよいか分かりません。私はこの能力を現在持っているものは知らないので、これを行う方法の例をどこで探すべきかわからない。jQueryドラッグ&ドロー
jQueryでドラッグアンドドローを実装するにはどうすればよいですか?
jQueryプラグインをビルドしようとしています。これは、四角形(または境界線付きのdiv)をドラッグして描画することができますが、どうすればよいか分かりません。私はこの能力を現在持っているものは知らないので、これを行う方法の例をどこで探すべきかわからない。jQueryドラッグ&ドロー
jQueryでドラッグアンドドローを実装するにはどうすればよいですか?
このような何かのための基本は、あなたがそれについて考えるとき、非常に簡単です:
mousedown
イベントの音を聞きます。
event
オブジェクト(e.pageX
およびe.pageY
)からのマウス座標を使用して、絶対位置の要素をマウスの位置に配置します。height
オブジェクトを(マウス座標に基づいて)変更するには、mousemove
イベントの受信を開始してください。mouseup
イベントをリッスンして、mousemove
イベントリスナーを切り離します。上記の絶対配置要素は、例えば、<div>
の境界線とbackground: transparent
である。
アップデート:ここは一例です。
$(function() {
var $container = $('#container');
var $selection = $('<div>').addClass('selection-box');
$container.on('mousedown', function(e) {
var click_y = e.pageY;
var click_x = e.pageX;
$selection.css({
'top': click_y,
'left': click_x,
'width': 0,
'height': 0
});
$selection.appendTo($container);
$container.on('mousemove', function(e) {
var move_x = e.pageX,
move_y = e.pageY,
width = Math.abs(move_x - click_x),
height = Math.abs(move_y - click_y),
new_x, new_y;
new_x = (move_x < click_x) ? (click_x - width) : click_x;
new_y = (move_y < click_y) ? (click_y - height) : click_y;
$selection.css({
'width': width,
'height': height,
'top': new_y,
'left': new_x
});
}).on('mouseup', function(e) {
$container.off('mousemove');
$selection.remove();
});
});
});
私がまさに必要です。ありがとう! – Andrew
次の誰かのために、私はあなたの答えを異なる方向にドラッグするためのソリューションで更新しました。 – Andrew
そして私は速いhtmlイメージマッパー(四角形は私のニーズに合ったもの)のためにこれと同じものが必要でした。上記のようにドラッグアンドウェイ変更を組み込み、htmlイメージマップソースを出力します。 http://jsbin.com/ireqix/91 – frumbert