4

如何访问可拖动对象的动态变化坐标?我不仅想要 处的坐标stop,还想要源源不断的位置信息流。

换句话说,如果我object A四处拖动,我应该能够通过(1)观察 的变化然后(2)将它们应用到 的位置来object B平行移动。object Aobject B

在这段代码中,我希望红色块 ( obj2) 与蓝色 ( ) 一起移动obj1

<html>
<head>
<style>
#obj1 {
   position:fixed;
   top:50px;
   left:50px;
   width: 40px;
   height: 40px;
   background-color: blue;
}
#obj2 {
   position:fixed;
   top:150px;
   left:150px;
   width: 40px;
   height: 40px;
   background-color: red;
}
</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function () {
        $('#obj1').draggable();
    })
</script>
</head>

<body>
    <div id="obj1"></div>
    <div id="obj2"></div>
</body>
</html>
4

3 回答 3

3

您可以使用drag可拖动事件:

$("#obj1").draggable({
    drag: function(event, ui) {
        var pos = ui.position;
        $("#obj2").css({
            left: pos.left + 100,
            top: pos.top + 100
        });
    }
});​

演示:http: //jsfiddle.net/kPEfL/

于 2012-06-16T07:57:08.637 回答
1

可拖动插件有 3 个事件:开始、拖动和停止(所有这些都提供坐标)。您可以绑定到拖动事件并在回调中获取您需要的信息。

在这里您可以找到示例和演示。

于 2012-06-16T07:54:35.313 回答
1

和event 属性适用于该目的,您可以附加一个offsetY处理程序来获取它们:offsetYdrag

$('#obj1').bind('drag', function(event) {
    console.log(event.offsetY); // dymamic y position
    console.log(event.offsetX); // dymamic x position
});

参考:

于 2012-06-16T08:04:16.400 回答