在iPad上滚动“打破”Colorbox?

时间:2012-10-17 19:08:00

标签: jquery colorbox

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

打开第一个示例,然后尝试连续4-5次向上或向下滚动页面“硬”。彩盒可能会移动一点。然后,尝试关闭颜色框。触摸颜色框外的任何位置或触摸关闭按钮似乎什么都不做。我甚至尝试手动添加手动$ .colorbox.close()调用和关闭按钮触摸事件的警报。警报显示(实际两次),但Colorbox未关闭。绝对没有办法关闭它。看起来这个动作在某种程度上从根本上打破了一些东西。

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

所以,我有几个问题。 1.其他人可以复制这个吗? (或者我正在做一些可怕的错误?) 有没有人遇到过这个问题? 3.如果是,有任何解决方法吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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,

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