Запуск одной функции в 2х экземплярах одновременно
У меня есть функция анимации, которая в зависимости от переданных значений в аргументы может творить с блоком что угодно (читай разные вещи). Она похожа на jQuery .animate() по исполнению, но не синтаксису. Что я хочу? Для начала обрисую вид (не целиком, а просто логику).
function anim(el, prop, val, speed){ //something } document.getElementById("button").onclick = function(){ //block left:200px anim('block','left','200px',[10,100]); //block opacity:0 anim('block','opacity','0',"fast"); } как вы поняли, функция смещает блок влево на 200 пикселей и одновременно пытается "затуманить" блок, чтобы он плавно пропал (да, я знаю про css3, но этот пример чисто для наглядности). Как мне обойти эти очереди чтобы работа был асинхронной? (если бы очереди - их тут вообще нет, выполняется последняя). Как запустить эту функцию для отрисовки разных вещей? Как это сделать красиво? Может можно как-то создать виртуальную копию функции для обхода? Прошу меня извинить если я что-то оформил неправильно - пишу с телефона. Надеюсь вопрос понятен. Вот кстати схожий вопрос, но по jQuery и на stackoverflow: http://stackoverflow.com/questions/1...simultaneously |
Приду домой, напишу .paralell() для основной ф-ции (копирует текущую, но выполняет как левую), но думаю это дрянное решение.
|
Цитата:
Цитата:
например так: http://learn.javascript.ru/play/0k4Doc и не нужно никаких jquery плагинов. а вообще почитайть про анимацию в js можно вот тут |
Facepalm. Не занимайте чужое время, пожалуйста - я не использую jQuery - вы видите набросок моей функции. Не знаю зачем вы ответили не вникнув в вопрос даже самую малость.
А касаемо синхронного выполнения - нужно вызывать либо коллбеками или через setTimeout, то есть хаками (для тех кто столкнется с подобной проблемой). Но на самом деле проблема у меня не в синхронном выполнении, а передаче аргументов. Буду разбираться в самих функциях, хотя в console.log тишь да гладь |
Итак... Я нашел ошибку, ту самую, которая отняла у меня достаточно времени. Вы могли бы подумать что это косяк в логике функций, но еж твою! Я забыл var перед некоторыми функциями. Как такое возможно, я все облазил до этого. Не наступайте на мои грабли, ребята.
|
Цитата:
Тогда и ответ будет такой же, по существу. Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 00:36. |