Fancybox плохо играет с Cycle Plugin - Советы? - PullRequest
0 голосов
/ 10 июля 2011

На нескольких моих страницах у меня есть лайтбокс Fancybox и плагин jQuery Cycle. Обычно это работает нормально. Есть случаи, когда я щелкаю ссылку, которая создает лайтбокс, а затем, когда я закрываю его, плагин цикла переходит и не возвращается. Это делает огромный пробел в пространстве, когда это происходит.

Я не уверен, что происходит, это не происходит в 100% случаев. Это спорадическое. Я не уверен, что это проблема с одним браузером или несколькими браузерами, поскольку я смог воссоздать это в FF5 на двух разных машинах, но не повторил это в других браузерах.

Любой совет?

Спасибо - вот эта страница: http://www.ubhape2.com/artists/ (примечание: любая страница исполнителя имеет такой же заголовок и встречается на всех них. Fancybox - это любая ссылка, ссылающаяся на "Выбор")

1 Ответ

0 голосов
/ 23 июля 2011

Найден ответ тем, у кого похожие проблемы (этот ответ пришел с форумов Fancybox):

После дальнейших тестов я выяснил, в чем проблема, и это происходит, когда вы быстро и последовательно открываете и закрываете Fancybox. Кажется, что анимация (цикл jQuery) создает нечто, называемое "наращивание очереди анимации" (http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup),, что происходит при взаимодействии с другими js-скриптами, которые обрабатывают анимацию (Fancybox использует прозрачную анимацию в оверлее).

Я бы сказал, что это не проблема fancybox, и что вы должны перенести ее на форум плагинов цикла, однако (так как вы используете облегченную версию), вы можете отредактировать файл cyc js и сделать следующее изменения, чтобы минимизировать влияние проблемы (по крайней мере, она не исчезнет с вашей страницы):

Заменить строку 166:

var fn = function() {$n.animate(opts.animIn, opts.speedIn,
opts.easeIn, cb)};

с этим:

var fn = function() {$n.animate(opts.animIn, 1000, opts.easeIn, cb)};

и строка 167:

$l.animate(opts.animOut, opts.speedOut, opts.easeOut, function() {

с этим:

$l.animate(opts.animOut,{queue:false, duration: opts.speedOut},
opts.easeOut, function() { 
...