![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
crang |
|
||||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 3.6.2004 Где: Ukraine Репутация: нет Всего: нет |
Доброго времени суток. Задача такова: есть текстовые файлы, их содержимое извлекается в div'ы средствами пхп:
как результат, внутри div'а novosti-ban создаются div'ы один над другим, по количеству текстовых файлов, каждому присваивается id - порядковый номер. Далее средствами JavaScript необходимо поочередно показать на какой-то интервал каждый div (должно выйти что-то типа баннера):
Проблема в том, что слои отображаются все одновременно и скрываются так-же, никак не соображу - как заставить их делать это последовательно, по одному? Заранее спасибо. |
||||
|
|||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
ясен пень одновременно. вы же цикл сразу прогоняете, создаёте кучу таймеров, половина которых срабатывает через 5 секунд, остальные через 10. последовательная работа во времени никогда не задаётся через цикл. это надо запомнить
сделайте что-нибудь такого заместо последнего:
|
|||
|
||||
crang |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 3.6.2004 Где: Ukraine Репутация: нет Всего: нет |
никак не могу понять химию процесса
представляю себе это так, в случае с len=4(это при двух вложенных div): время (сек) событие 0 создается таймер setInterval('qw()', 10000), ф-я qw() сработает через 10 сек 5 ничего не происходит 10 выполняется ф-я qw(), создаются 2 таймера setTimeout(function() { show(count); },5000) и setTimeout(function() { hide(count); },10000) 15 срабатывает таймер setTimeout(function() { show(count); },5000), выполняется ф-я show(count), появляется div1 20 срабатывает таймер setTimeout(function() { hide(count); },10000), выполняется ф-я hide(count) - div1 скрыт, выполняется ф-я qw(), создаются 2 таймера setTimeout(function() { show(count); },5000) и setTimeout(function() { hide(count); },10000) 25 срабатывает таймер setTimeout(function() { show(count); },5000), выполняется ф-я show(count), появляется div2 30 срабатывает таймер setTimeout(function() { hide(count); },10000), выполняется ф-я hide(count) - div2 скрыт, выполняется ф-я qw(), создаются 2 таймера setTimeout(function() { show(count); },5000) и setTimeout(function() { hide(count); },10000) ....... если что-то не так представляю - поправьте, пожалуйста, уверен что-то не так, потому как на практике выглядит следующим образом - www.ktm.net.ua (на фоне синего баннера, справа внизу test и test1) |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
оно работает или нет?
|
|||
|
||||
crang |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 3.6.2004 Где: Ukraine Репутация: нет Всего: нет |
bars80080, уже работает ) спасибо за наводку и консультации. рабочий вариант:
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
тогда можно и описать. а то чего описывать, если не работает?
собственно, уже сам всё и описал. это правильнее читается так: выполняется анонимная функция, которая запускает функцию show(0) с аргументом 0. так как в момент первого выполнения qw(), count равен 0 далее тоже самое, меняется только count напрямую записать
локализуя код в функцию (пусть даже и анонимную), мы откладываем исполнение до вызова этой функции |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |