4

サイズ変更とドラッグの両方が可能なオブジェクトが必要です。必要なもの:

  • バツ
  • Y
  • サイズ

オブジェクトの。

これは可能ですか?

http://www.jsfiddle.net/davidThomas/DGbT3/1/に、ドラッグ可能なオブジェクトのxとyを取得する例があります。どうすればサイズを変更できますか?

ありがとう


この質問は、この前の質問に関連しており、それに基づいていることを付け加える価値があります。ドラッグ可能なオブジェクトの位置を取得する方法は?

4

2 に答える 2

8

確かに... jQueryUIは、ドラッグアンドドロップ、サイズ変更、選択、並べ替えなどの複雑な動作に適しています。

jQuery UIを使用すると、次のことができます。

  • 引っ張る
  • 落とす
  • サイズ変更
  • 選別

そして、あなたはすべてを一緒に連鎖させることができます。

jquery-ui.cssサイズ変更機能では、ファイルを含めることが重要です。

JSFIDDLE: http: //jsfiddle.net/uQWRk/

アーカイブの完全なコードは次のとおりです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html lang="en">
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css"/>

<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {

        $('#dragThis').resizable({
            stop: function(event, ui) {
                var w = $(this).width();
                var h = $(this).height();
                console.log('StopEvent fired')
                console.log('Width:'+w);
                console.log('Height:'+h)    
            }
        }).draggable(
            {
                containment: $('body'),
                drag: function(){
                    var offset = $(this).offset();
                    var xPos = offset.left;
                    var yPos = offset.top;
                    $('#posX').text('x: ' + xPos);
                    $('#posY').text('y: ' + yPos);
                },
                stop: function(){
                    var finalOffset = $(this).offset();
                    var finalxPos = finalOffset.left;
                    var finalyPos = finalOffset.top;

            $('#finalX').text('Final X: ' + finalxPos);
            $('#finalY').text('Final X: ' + finalyPos);
                }
            });

        $('#dropHere').droppable(
            {
                accept: '#dragThis',
                over : function(){
                    $(this).animate({'border-width' : '5px',
                                     'border-color' : '#0f0'
                                    }, 500);
                    $('#dragThis').draggable('option','containment',$(this));
                }
            });
    });

</script>   
<style type="text/css">
    #dragThis {
        width: 6em;
        height: 6em;
        padding: 0.5em;
        border: 3px solid #ccc;
        border-radius: 0 1em 1em 1em;
        background-color: #fff;
        background-color: rgba(255,255,255,0.5);
    }

    #dropHere {
        width: 12em;
        height: 12em;
        padding: 0.5em;
        border: 3px solid #f90;
        border-radius: 1em;
        margin: 0 auto;
    }
</style>
</head>
<body>
<div id="dragThis">
<ul>
    <li id="posX"></li>
    <li id="posY"></li>
    <li id="finalX"></li>
    <li id="finalY"></li>
</ul>
</div>
<div id="dropHere"></div>
</body>
</html>

コメントを参照してください: ここに画像の説明を入力してください

于 2011-02-04T23:27:24.437 に答える
0

ドラッグ可能という意味の場合、次のようになります。

$( "#elem" ).resizable().draggable();

cssでポイントできるサイズと位置(初回)。それらを変更して(サイズ変更または移動したときに)jQueryで取得できるよりも。

draggable()メソッドとresizable()メソッドにオプションを追加できます。参照はここにあります:http: //jqueryui.com/demos/resizable/およびhttp://jqueryui.com/demos/draggable/

PSこのコードにはjquery-ui.jsファイルとjquery-ui.cssが必要です(サイズを変更するためのマーカーを描画するため)

PPS

あなたのリンクで:JavaScriptフレームに私は次の行を追加しました:

$('#dropHere').resizable();

そして、管理対象リソース「http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/themes/base/jquery-ui.css」にcssスタイルを追加しました

そしてそれはうまくいきました!

于 2011-02-04T23:26:40.220 に答える