Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2013, 08:35
Интересующийся
Отправить личное сообщение для Fronnt Посмотреть профиль Найти все сообщения от Fronnt
 
Регистрация: 24.09.2013
Сообщений: 24

Запуск одной функции в 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

Последний раз редактировалось Fronnt, 24.09.2013 в 10:40.
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2013, 10:14
Интересующийся
Отправить личное сообщение для Fronnt Посмотреть профиль Найти все сообщения от Fronnt
 
Регистрация: 24.09.2013
Сообщений: 24

Приду домой, напишу .paralell() для основной ф-ции (копирует текущую, но выполняет как левую), но думаю это дрянное решение.
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2013, 12:36
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Fronnt Посмотреть сообщение
Надеюсь вопрос понятен
вопрос не понятен.
Сообщение от Fronnt Посмотреть сообщение
функция смещает блок влево на 200 пикселей и одновременно пытается "затуманить" блок, чтобы он плавно пропал
это делается легко ...

например так:

http://learn.javascript.ru/play/0k4Doc

и не нужно никаких jquery плагинов.

а вообще почитайть про анимацию в js можно вот тут

Последний раз редактировалось Arramis, 24.09.2013 в 12:43.
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2013, 14:26
Интересующийся
Отправить личное сообщение для Fronnt Посмотреть профиль Найти все сообщения от Fronnt
 
Регистрация: 24.09.2013
Сообщений: 24

Facepalm. Не занимайте чужое время, пожалуйста - я не использую jQuery - вы видите набросок моей функции. Не знаю зачем вы ответили не вникнув в вопрос даже самую малость.

А касаемо синхронного выполнения - нужно вызывать либо коллбеками или через setTimeout, то есть хаками (для тех кто столкнется с подобной проблемой). Но на самом деле проблема у меня не в синхронном выполнении, а передаче аргументов. Буду разбираться в самих функциях, хотя в console.log тишь да гладь
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2013, 15:12
Интересующийся
Отправить личное сообщение для Fronnt Посмотреть профиль Найти все сообщения от Fronnt
 
Регистрация: 24.09.2013
Сообщений: 24

Итак... Я нашел ошибку, ту самую, которая отняла у меня достаточно времени. Вы могли бы подумать что это косяк в логике функций, но еж твою! Я забыл var перед некоторыми функциями. Как такое возможно, я все облазил до этого. Не наступайте на мои грабли, ребята.
Ответить с цитированием
  #6 (permalink)  
Старый 24.09.2013, 15:17
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Fronnt Посмотреть сообщение
Не знаю зачем вы ответили не вникнув в вопрос даже самую малость.
вы задали много не связных вопросов поэтому и вникать было некуда - научитесь излагать мысли максимально лаконично и по существу.
Тогда и ответ будет такой же, по существу.
Сообщение от Fronnt Посмотреть сообщение
Но на самом деле проблема у меня не в синхронном выполнении, а передаче аргументов.
если проблема в этом тогда почему спрашиваете про то как сделать перемешение блока с одновременным затуманиваем ?? на последний вопрос я вам ответил - остальное не понятно.
Ответить с цитированием
  #7 (permalink)  
Старый 24.09.2013, 15:36
Аватар для Arramis
Кандидат Javascript-наук
Отправить личное сообщение для Arramis Посмотреть профиль Найти все сообщения от Arramis
 
Регистрация: 22.07.2013
Сообщений: 104

Сообщение от Fronnt Посмотреть сообщение
Итак... Я нашел ошибку, ту самую, которая отняла у меня достаточно времени. Вы могли бы подумать что это косяк в логике функций, но еж твою! Я забыл var перед некоторыми функциями. Как такое возможно, я все облазил до этого. Не наступайте на мои грабли, ребята.
какие грабли ?? о чем вы вообще ?? какой var ?? не забывайте что здесь вы разместили 3 - ех строчный псевдокод вашего реального примера.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать переменную из одной функции в другую. stepandra Общие вопросы Javascript 1 25.05.2013 17:39
К одной функции привязать события и элементы kamushek jQuery 2 08.07.2011 22:12
Запуск при редиректе некой js функции Dorsaj Элементы интерфейса 0 22.10.2010 16:05
Запуск функции если mouseout frolvict Общие вопросы Javascript 10 27.04.2010 17:16
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59