JQuery Effects скользит неожиданная задержка - PullRequest
0 голосов
/ 03 мая 2011

Следующий код определяет, какая цель ссылки была боковой панелью или страницей, и из которой соответственно перемещаются панели.Боковые панели работают в унисон с видимой боковой панелью, выдвигающейся влево, с сикронизацией, а одна скользящая справа.

Страничные, однако «основные» - нет.Левый выскальзывает, и новый самолет скользит после задержки около 300 мс.Этого не должно быть, так как код один и тот же.Любые идеи.

var panel = $('.sidewrapper:visible');
var panelnext = $('.sidewrapper:visible').next();
var paneltarget = $('.sidewrapper:visible').next().find('.sidescroller').children();

var page = $('.mainwrapper:visible');
var pagenext = $('.mainwrapper:visible').next();
var pagefirst = $('.mainwrapper:visible').first();
var pagetarget = $('.mainwrapper:visible').next().find('.mainscroller').children();

if (target == 'sidebar') {
    $(paneltarget).html(data.sidepanel);
    $(panel).hide('slide', { direction: 'left' }, 300); $(panelnext).show('slide', { direction: 'right' }, 300);
    }
    else if (target == 'page') {
    $(pagefirst).find('.mainscroller').children().html(data.sidepanel);
    $(page).hide('slide', { direction: 'left' }, 300); $(pagefirst).show('slide', { direction: 'right' }, 300);
    }

Любые идеи,

Чудесные

1 Ответ

1 голос
/ 03 мая 2011

Я только что час назад объявил о выпуске jQuery 1.6 в своем RSS-ридере. Возможно, вам будет приятно узнать следующее в примечаниях к выпуску:

Синхронизированные анимации

В jQuery вы можете запускать несколько анимаций одновременно (даже несколько на одном элементе, анимируя различные свойства).В версии 1.6 мы представили усовершенствование, обеспечивающее синхронизацию всех анимаций с одинаковым интервалом таймера.Это могло создать проблемы до того, как анимация могла стать немного несинхронизированной (даже на пару миллисекунд), что приводило к слегка «выключенным» анимациям.

Более плавные анимации

Кроме того, jQuery теперь использует новый метод requestAnimationFrame, предоставленный браузерами, чтобы сделать нашу анимацию еще более плавной.Мы можем использовать эту функцию, чтобы избежать вызовов таймеров, и вместо этого зависеть от браузера, чтобы обеспечить наилучшую анимацию.

Попробуйте, это может быть именно то, что вам нужно.

...