jQuery Draggable:图像闪烁

时间:2009-08-20 19:42:02

标签: javascript jquery image draggable

我一直在开发一个图像平移工具,在一个善意的成员指导我使用jQuery的可拖动插件之后,我已经完成了大部分工作。现在,如果用户拖动图像(包含在大约300像素×300像素的div中),图像将首先闪烁,然后平移。鼠标移动事件发生鼠标按下事件后,似乎会出现此问题。鼠标移动时,图像将移入四个角中的一个角,移动到某些区域将导致另一个移位。我还没能通过谷歌找到任何东西,而且我对jQuery还是比较新的。

我已经在这里上传了代码,以防我的描述太模糊: http://www.studentgroups.ucla.edu/csa/test/zoom.htm

非常感谢任何想法或建议!

1 个答案:

答案 0 :(得分:1)

首先,你已经通过jQuery插件和你自己的代码使图像可以拖动了。您的代码正在更改background-position的{​​{1}},而jQuery插件正在更改div的实际位置。这肯定会引起一些问题。

此外,Draggable的div参数似乎是针对小于其父容器的可拖动项目而设计的,而不是像你想要的那样更大的可拖动项目。

无论如何,这是工作代码:

containment

如果您不需要边缘捕捉,则可以摆脱$(document).ready(function() { $(".draggable").draggable().bind('dragstop', function(e, ui) { if (ui.position.top > 0) { $(this).css('top', 0); } if (ui.position.left > 0) { $(this).css('left', 0); } var bottom = -($(this).height() - $(this).parent().height()), right = -($(this).width() - $(this).parent().width()); if (ui.position.top < bottom) { $(this).css('top', bottom); } if (ui.position.left < right) { $(this).css('left', right); } }); }); 功能,只需拨打.bind()

.draggable()