0

这可以在这里的官方示例中轻松重复:http ://www.jacklmoore.com/colorbox/example1/

打开第一个示例,然后尝试连续向上或向下滚动页面 4-5 次。颜色框可能会稍微移动。然后,尝试关闭颜色框。触摸颜色框外的任何位置或触摸关闭按钮似乎无济于事。我什至尝试手动添加手动 $.colorbox.close() 调用和关闭按钮触摸事件的警报。警报出现(实际上是两次),但 Colorbox 没有关闭。绝对没有办法关闭它。这个动作似乎从根本上破坏了某些东西。

如果您玩得很好并且只需触摸 Colorbox 外部或触摸关闭按钮,它就可以正常工作,但是如果您进行任何“粗略滚动”,那么它似乎会以某种方式完全破坏它。

所以,我有几个问题。1. 其他人可以复制吗?(或者我做错了什么?) 2. 以前有没有人遇到过这种情况?3. 如果有,有什么解决方法吗?

4

2 回答 2

1

我最近也遇到了这个问题。问题源于以下事实:由于某种原因,jQuery 中的动画优化停止更新。这会导致 Colorbox 在动画中一遍又一遍地显示相同的步骤。我能找到的唯一解决方法是更改​​ Colorbox 脚本,将每个淡入淡出动画的时间属性设置为 0。它现在似乎已经纠正了这个问题,尽管你确实失去了很好的效果。我希望这能够帮到你。

于 2012-10-24T22:22:24.013 回答
1

编辑:此错误已在 jQuery 1.8.3 中修复。

如果您使用的是 jQuery 1.8.2,那么以下补丁将解决该问题。

--- jquery-1.8.2.js (original)
+++ jquery-1.8.2.js (fixed)
@@ -8615,6 +8615,9 @@
            delete tick.elem;
        }),
        tick = function() {
+           setTimeout(function() {
+               fxNow = undefined;
+           }, 0 );
            var currentTime = fxNow || createFxNow(),
                remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
                percent = 1 - ( remaining / animation.duration || 0 ),

如果您使用的是 jQuery 1.7.1,则可以使用以下补丁。

--- jquery-1.7.1.js (original)
+++ jquery-1.7.1.js (fixed)
@@ -8706,6 +8706,7 @@

    // Each step of an animation
    step: function( gotoEnd ) {
+       setTimeout( clearFxNow, 0 );
        var p, n, complete,
            t = fxNow || createFxNow(),
            done = true,

我已在票证 #12837中向 jQuery 提交了有关此错误的更多信息。

于 2012-11-02T18:05:26.490 回答