【问题标题】:jQuery colorbox plugin resize callbackjQuery colorbox 插件调整大小回调
【发布时间】:2011-07-18 15:18:16
【问题描述】:

我有一个 ASP.NET MVC 应用程序,我正在使用两个 JQuery 插件:colorbox 和 jcrop。我的问题是颜色框调整大小功能。将内容加载到颜色框后,我调用 resize 函数来调整颜色框的大小以更好地适应其内容。这很好用,除了在此之后我立即将 jcrop 插件添加到组合中。 Jcrop 在颜色框调整大小功能完成之前稍微触发。因此,它会扭曲 jcrop 的数据。这会导致裁剪工具在初始移动时跳转,如下例所示:

http://jsfiddle.net/Xg84D/12/

请注意,在上面的示例中,裁剪选择器如何在初始移动时跳转,如以下问题所示:

jQuery Jcrop setSelect shows visually, but when clicked to move, it jumps

我发现阻止这种情况的唯一方法是将 jcrop 位包装在 setTimeout() 中并将代码延迟 1 秒以确保在代码触发之前完成调整大小,如下例所示:

http://jsfiddle.net/Xg84D/13/

现在,当您拖动裁剪区域时,它一开始不会跳动。使用setTimeout() 绝对是我不喜欢的一种技巧,所以我想知道是否有人有任何建议。如果只有jQuery.colorbox.resize() 接受其设置对象的回调函数。

谢谢!

【问题讨论】:

  • 我看不出http://jsfiddle.net/Xg84D/12/ 的问题。你能再提供一个样品吗?
  • 在第一个例子中开始拖动裁剪方块。它会跳到图像的右下角。然后开始拖动第二个中的裁剪方块,你会发现它像黄油一样光滑,没有跳跃。在第一个示例中,它在初始拖动后仅跳跃一次,但足以令人讨厌。
  • 好的!知道了!我可以看到问题...
  • 发生这种情况是因为 jcrop 代码运行时 jQuery.colorbox.resize() 未完成调整大小。延迟一秒钟通常足以确保调整大小完成,但我不喜欢它。在较慢的 javascript 引擎中,调整大小可能在一秒钟后仍然无法完成,但再过一段时间,等待 jcrop 加载就会变得烦人。

标签: javascript jquery jquery-plugins colorbox


【解决方案1】:

在 GitHub 的开发版 colorbox 中,有一个提交可以解决您的问题。
看到它here

我认为您应该编辑 jquery.colorbox.js 文件中的函数resize 以接受回调参数。正如链接所建议的那样。

@@ -450,7 +450,7 @@    
     });    
   };     

-  publicMethod.resize = function (options) {    
+  publicMethod.resize = function (options, loadedCallback) {    
     if (open) {    
       options = options || {};

@@ -475,7 +475,7 @@

       }

       $loaded.css({height: settings.h});           

-      publicMethod.position(settings.transition === "none" ? 0 : settings.speed);    
+      publicMethod.position(settings.transition === "none" ? 0 : settings.speed, loadedCallback);
     }
   };

祝你好运!

【讨论】:

  • 或者,也许你可以下载它here(压缩)
  • @Alex,我可以给你小费吗?尽量避免对同一个目标多次使用 JQuery 选择器。取而代之的是jQuery('#cropTool') n 次,使用:var cropTool = jQuery('#cropTool'); 并使用cropTool var 检索值。态度
  • 对,但这只是一个示例。我不假思索地把它敲了出来。相信我,在我的实际实现中,我对代码的可读性更加了解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
相关资源
最近更新 更多