javascript - 在没有 jquery ui 的情况下使元素可拖动?

标签 javascript jquery

我正在尝试构建类似于 Twitter 的图像裁剪器 - http://jsfiddle.net/yarKr/1/ .我坚持的是拖动图像的能力。 不求助于 jquery ui 的最佳方法是什么?

<div class="canvas">
    <span class="window"></span>
    <img src="http://www.dailystab.com/blog/wp-content/uploads/2009/03/katy-perry-esquire-4.jpg" class="draggable" />
</div>

我希望能够在 .canvas div 中四处移动拖动图像。

最佳答案

像这样的东西会起作用: jsFiddle

var TheDraggable = null;

$(document).ready(function () {

    $('.draggable').on({
        mousedown: function () { TheDraggable = $(this); },
        mouseup: function () { TheDraggable = null; }
    });

    $(document).mousemove(function (e) {

        if (TheDraggable) {

            TheDraggable.css({'top': e.pageY, 'left': e.pageX});
        }
    });
});

然后为 CSS 添加:.draggable { position:absolute; }

您可以重写它并在重新定位时添加某种形式的缓动,更改光标或根据图片上初始点击发生的位置添加更精确的起点,但总的来说,这应该让您开始。

关于javascript - 在没有 jquery ui 的情况下使元素可拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776150/

相关文章:

jquery - 在 ASP.NET MVC 3 中使用不显眼的客户端验证编写什么 jQuery?

javascript - 如何阻止右键单击和双击缩放?

javascript - 为什么我不能/不应该使用 while 循环来监视异步 jQuery 操作?

javascript - 如何在 Angularjs 中将值从服务传递到 Controller

javascript - 如何在我的html网站上重定向youtube嵌入视频以在youtube应用程序中打开

javascript - JQuery $(elmnt + "div").each 有办法做到这一点吗?

javascript - 对 Nodejs 中发出的事件进行单元测试的最佳方法是什么?

javascript - 灯箱 iframe 关闭

jQuery 调用 CSS3 版本的 stop(true,false) 并从事件中制作动画?

php - 单击时播放特定音轨