这可以在这里的官方示例中轻松重复:http://www.jacklmoore.com/colorbox/example1/
打开第一个示例,然后尝试连续4-5次向上或向下滚动页面“硬”。彩盒可能会移动一点。然后,尝试关闭颜色框。触摸颜色框外的任何位置或触摸关闭按钮似乎什么都不做。我甚至尝试手动添加手动$ .colorbox.close()调用和关闭按钮触摸事件的警报。警报显示(实际两次),但Colorbox未关闭。绝对没有办法关闭它。看起来这个动作在某种程度上从根本上打破了一些东西。
如果您玩得很好并且只是触摸Colorbox外部或触摸关闭按钮,它可以正常工作,但如果您执行任何“粗略滚动”,那么它似乎会以某种方式完全破坏它。
所以,我有几个问题。 1.其他人可以复制这个吗? (或者我正在做一些可怕的错误?) 有没有人遇到过这个问题? 3.如果是,有任何解决方法吗?
答案 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提交了有关此错误的更多信息。