【问题标题】:jQuery drag - to get start and stop coordinatesjQuery 拖动 - 获取开始和停止坐标
【发布时间】:2014-01-29 13:00:19
【问题描述】:

您好,我一直在寻找 jQuery 的拖动库中的一种方法,如果我按住鼠标按钮并拖动鼠标,然后松开按钮,我会根据原始屏幕像素获得该拖动的开始和结束坐标。我在上面画了一个空白,也没有在 StackOverlaod 上找到任何东西。

谁能推荐一个例子?

谢谢 格雷厄姆

【问题讨论】:

  • 阅读有关 JQuery UI 的 .draggable() API 的文档。它解释了如何使用.start.stop。基本上,您将编写类似$("#foo").draggable(){ start:function(){//get coordinates}, stop:function(){//get coordinates}}); 的代码。看看那些漂亮的例子^^jqueryui.com/draggable/#events

标签: jquery drag mouse-coordinates


【解决方案1】:

您可以使用获取dragstart 和dragend 的事件。 试试这个代码

<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="http://jqueryui.com/jquery-wp-content/themes/jquery/css/base.css?v=1">
<style>
    #myDiv
    {
        width: 20px;
        height: 20px;
        background-color: Red;
    }
</style>
<script>
    $(document).ready(function () {
        $("#myDiv").draggable({
            start: function (e, ui) {
                var parentOffset = $(this).parent().offset();
                var relX = e.pageX - parentOffset.left;
                var relY = e.pageY - parentOffset.top;
                $("#start").html(" x: " + relX + ", y: " + relY);
            },
            stop: function (e, ui) {
                var parentOffset = $(this).parent().offset();
                var relX = e.pageX - parentOffset.left;
                var relY = e.pageY - parentOffset.top;
                $("#end").html(" x: " + relX + ", y: " + relY);
            }

        });
    });

</script>
</head>
<body>
start Position:<span id="start"></span>
<br />
End Position:<span id="end"></span>
<div id="myDiv">
</div>

</body>
</html>

已编辑 如果您想在没有拖动元素的情况下获取鼠标位置,请像这样使用

<script>
    $(document).ready(function () {
        $("body").mousedown(function (e) {
            var parentOffset = $(this).parent().offset();
            var relX = e.pageX - parentOffset.left;
            var relY = e.pageY - parentOffset.top;
            $("#start").html(" x: " + relX + ", y: " + relY);
        });

        $("body").mouseup(function (e) {
            var parentOffset = $(this).parent().offset();
            var relX = e.pageX - parentOffset.left;
            var relY = e.pageY - parentOffset.top;
            $("#end").html(" x: " + relX + ", y: " + relY);
        });

    });
</script>

【讨论】:

  • 如果我想拖动屏幕的任意部分,没有可拖动的对象,我可以这样做吗?
猜你喜欢
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多