Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2010, 11:02
Аватар для sms9
Новичок на форуме
Отправить личное сообщение для sms9 Посмотреть профиль Найти все сообщения от sms9
 
Регистрация: 21.01.2010
Сообщений: 8

Как сделать такую функцыю...
Здраствуйте!
У меня есть функция которая прорисовует div елемент на страницы:
function anim(ob, x, dx, t){
if(t<0) return true;
document.getElementById(ob).style['top']=x+dx;
setTimeout(function(){anim(ob, x, dx, t-1)}, 10);}

Например у меня есть код который нужно выполнить:
function hhh(){
anim('div',1,1,25);
alert('алерт')
}

Как усовершенствовать функцию anim() чтобы alert('алерт') выполнилась после завершения функции прорисовки на не вовремя того как объект div перемещается по экрану!!!
Ну можно сделать от так:
function anim(ob, x, dx, t){
if(t<0) aaa();
document.getElementById(ob).style['top']=x+dx;
setTimeout(function(){anim(ob, x, dx, t-1)}, 10);}

function aaa(){alert('алерт')};

anim('div',1,1,25);

Но етот метод очень сложен, может можно как то проще всё это реализовать, потому что при использовании этого метода используется дополнительная функция aaa(). Ну а если нужно использовать большое количество функций anim(), то дополнительных функций нужно очень и очень много!!!
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2010, 11:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

function anim(ob, x, dx, t,callback){
if(t<0) callback();
document.getElementById(ob).style['top']=x+dx;
setTimeout(function(){anim(ob, x, dx, t-1)}, 10);}

anim('div',1,1,25,function(){alert('алерт')});

это называется анонимная функция
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2010, 11:42
Аватар для sms9
Новичок на форуме
Отправить личное сообщение для sms9 Посмотреть профиль Найти все сообщения от sms9
 
Регистрация: 21.01.2010
Сообщений: 8

Я знаю этот метод... А можно ли так делать чтобы после функции это все делалось?
Например чтобы было на подобие:
function hhh(){
var txt;
for(var i in document)
if(typeof(document[i])=='string') txt+=i+"="+document[i]+"<br>";
return txt}

//ну и теперь исполнение
hhh();
alert('алерт');

Здесь alert('алерт') выполняется после hhh(), а не вовремя!!!
Может можно функцию anim() как то переделать?
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2010, 13:13
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

5 за орфографию =)
Чтобы alert выполнялся во время функции вы не думали засунуть его в функцию?
И вообще что за бред. Как он может выполнятся во время функции если стоит он позже?
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.

Последний раз редактировалось Niar, 22.01.2010 в 13:15.
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2010, 15:16
Аватар для sms9
Новичок на форуме
Отправить личное сообщение для sms9 Посмотреть профиль Найти все сообщения от sms9
 
Регистрация: 21.01.2010
Сообщений: 8

http://sms9.byethost5.com/test.html
Тут пример! Как зделать чтоб алерт был после виполнения функцыы!!!! А не вовремя!!
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2010, 15:17
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

Используйте задержку во времени
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2010, 15:27
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

А лучше используйте событие загрузки.
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2010, 16:01
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А что куда загружается-то О_о?
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2010, 16:02
Аватар для Niar
Труъ кодер
Отправить личное сообщение для Niar Посмотреть профиль Найти все сообщения от Niar
 
Регистрация: 20.01.2010
Сообщений: 194

Ну у него в функции что-то там двигаетсо. И alert должен появитсо только когда это окончательно передвинетсо.
То есть когда функция завершит свою работу.
__________________
http://www.free-lance.ru/users/Nia173 Мой аккуант на free-lance.
Ответить с цитированием
  #10 (permalink)  
Старый 22.01.2010, 16:37
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от Niar Посмотреть сообщение
Ну у него в функции что-то там двигаетсо. И alert должен появитсо только когда это окончательно передвинетсо.
То есть когда функция завершит свою работу.
Сообщение от Niar Посмотреть сообщение
А лучше используйте событие загрузки.
Так каким боком тут некое "событие загрузки"? Ну и что это, все же?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такую вещь? MCTrane Общие вопросы Javascript 5 26.11.2009 15:38
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24
Как сделать такую галерею crisco Events/DOM/Window 4 23.12.2008 16:28