jQuery Jcrop setSelect 直观显示,但是点击移动时,会跳转

Posted

技术标签:

【中文标题】jQuery Jcrop setSelect 直观显示,但是点击移动时,会跳转【英文标题】:jQuery Jcrop setSelect shows visually, but when clicked to move, it jumps 【发布时间】:2011-10-04 15:57:27 【问题描述】:

我正在使用 jQuery 插件 Jcrop。我对名为 setSelect 的初始设置之一有疑问。

该属性接受具有两组 x 和 y 坐标(左上角和右下角)的数组。

<img src="blah" id="cropTool" />
<script type="text/javascript">
    $(function()
    
        $('#cropTool').Jcrop(
        
            setSelect: [
                $('#cropTool').width()/4,
                $('#cropTool').height()/4,
                ($('#cropTool').width()/4)*3,
                ($('#cropTool').height()/4)*3
            ]
        );
    );
</script>

从视觉上看,这完全符合我的预期。它放置一个裁剪选择,左上角 1/4 进入图像(x 和 y),右下角 1/4 从图像右下角进入图像。像这样:

http://www.codetunnel.com/content/images/VisuallyFine.jpg

但是当我去移动它时,它会跳到这个位置:

http://www.codetunnel.com/content/images/Jumps.jpg

它立即跳到那里,我没有把它拖到那里。如果我尝试拖动默认选择,它会在移动一个像素或更多像素后跳转。在它跳跃后,我可以正常移动它。这是一个小问题,但很烦人。

有什么想法吗?

【问题讨论】:

【参考方案1】:

原来我使用的另一个 jQuery 插件干扰了 jcrop 定位。一个名为 colorbox 的插件可以加载覆盖弹出窗口是问题所在。在调用 jcrop 之前,我正在调用 jQuery.colorbox.resize()。当 jcrop 代码运行时,调整大小从未完全完成。一种解决方案是将 jcrop 代码放入 setTimeout() 以延迟代码一秒钟。那是骇人听闻的解决方案,所以我问了另一个更具体的问题并得到了答案。结果发现另一个颜色框的分支包含一个修复,在调整大小方法上包含一个函数回调,以便您可以在调整大小完成时执行代码。

jQuery colorbox plugin resize callback

【讨论】:

【参考方案2】:

不确定这是否完全正确,您只是从源中复制/粘贴,但这里有一个错字:

$('#ropTool').height()/4,

您可能正在寻找 $('#cropTool').height()/4,

【讨论】:

是的,抱歉,那是一个仅问题的错字。不过还是谢谢你。我更正了。

以上是关于jQuery Jcrop setSelect 直观显示,但是点击移动时,会跳转的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Jcrop 'setSelect' 选项指定自定义值?

Jcrop setSelect 错误的值

Jquery Jcrop - 从所有作物中获取(和设置)所有坐标

JCrop 使用 set select 选项时插件损坏

使用 jcrop 和 java 裁剪图像

无法用鼠标拖动 jcrop 选择