Приведенная выше копипаста ни как не относится к обсуждаемому вопросу.
Я четко спросил, КАК сделать синхронную анимацию в JQuery. Вместо того, что бы помочь или сказать не знаю как/пройти мимо, дознаешся до вещей, напрямую к вопросу не относящихся, заранее с установкой к чему нибудь придраться, и сказать, что ты бы сделал по другому. Способ навигации - часть интерфейса, а о интерфейсе как известно разводят самые многостраничные холивары. А ты тонкий тролль. |
Цитата:
UPD еще немного копипасты |
Моя проблема в том, что анимация скролла, и анимация появления контента происходит не синхронно. Ни сообщения по теме нет, а только флуд и флейм.
|
Так.
Во-первых. Обсуждаемая опция - часть интерфейса. А на почве интерфейса происходят самые сильные холивары. vi[m] vs emacs, vim/emacs vs нормальные редакторы, редакторы vs IDE, GNOME vs KDE, браузерные войны etc. Хорошо/плохо здесь ориентируется на личные предпочтения, привычку, и не более. Во-вторых ты действительно не привел ни одного аргумента. Цитата:
Цитата:
А вот листать малыми порциями, постоянно возвращаясь скроллом, очень неудобно. А в главных, от тебя не требовалось разводить тему преимущества того или иного способа навигации, а просто помочь в реализации. |
Цитата:
а то, что ты не можешь это реализовать только подтверждает, что это не нужно ;) |
То, что в JQuery нельзя сделать синхронную анимацию, лишь говорит о ее недостатках.
|
не серьёзно совсем
Уже год прошел, а ни кто не делится информацией :(
Мне сейчас похожий функционал требуется, нужно уменьшать блок 1 и добавлять внутренний отступ к соседнему блоку 2, при наведении. $('адрес блока инициирования').hover(function() { $('блок 1').animate({'width': '-=10px'}, 300); $('блок 2').animate({'paddingRight': '+=10px'}, 300); }, function() { *процедура при снятии курсора* }); }) Выполняется практически поочередно, разница в старте функций (начала выполнения по времени) так велика, что искажается идея анимации. Гуглил - почти везде ситуация одинакова - ни какой конкретики, а "супер ответ" про суп и ложку, который отношения не имеет к теме вообще. Когда тема создается, учитывайте пожалуйста, что по поисковым запросам, данная тема будет проявляться в результатах, и в итоге две страницы флуда. Цитата:
Или в этом случае jq подождет указанное время, запустит первую, а следом вторую? Конструкцию как сейчас, я пробовал и местами менять (тогда очерёдность меняется) и думал время выполнения подогнать под один знаменатель - бесполезно. |
ответ (решение)
Вариант с использованием SetTimeout - отпал как, предположительно не возможное решение. Пробовать не стал, но думаю поочередность сохранится.
Первый вариант был придумать конструкцию типа $( "блок 1" ).add( "блок 2" )и этим усложнить всё ситуацию. НО - чудо свершилось, и имя ему queue- что значит "очередь" Конструкция приняла такой вид: $('адрес блока инициирования').hover(function() { $('блок 1').animate({'width': '-=10px'}, { duration: 300, queue: false }); $('блок 2').animate({'paddingRight': '+=10px'}, { duration: 300, queue: false }); }, function() { *процедура при снятии курсора* }); }) так вот "queue: false" - снимает этот вопрос! jquery гораздо продуманней, чем может показаться. ссылка на страницу в jq api - http://api.jquery.com/queue/ Буду рад, если вам пригодится данная информация) |
используйте событие step в методе animate
$('блок 1').animate({ 'width': '-=10px' }, { duration: 300, step: function( now, data ) { // тут и обрабатывайте все что нужно, каждый шаг } }); |
Всё равно в итоге лажа получается.
Мне нужно несколько групп блоков обрабатывать независимо, т.е. множество блоков, внутри которых используется анимация вложенных блоков при наведении, так вот если после наведения на блок 1 сразу наводить на блок 2, где используется анимация, то процедура назначенная блоку 1 при снятии не выполняется, а выполняется сразу процедура наведения на блок 2, а блок 1, так и остается как-будто фокус мыши на нем. Это пол беды. Если вернуть мышь на блок 1, то парметры 'width': '-=10px' выполняются принимая за начальное значение width уже -=10px, так как осталось после выполнения первого наведения. В итоге если навести 5 раз, то блок на 50px меньше становится, и не возвращается в начальное заданное css значение. Есть мысли у кого нибудь? |
Часовой пояс GMT +3, время: 14:52. |