Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как подправить вывод картинки
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Как подправить вывод картинки

Страниц (1): [1]
 

1. Строитель - 23 Апреля, 2014 - 10:39:47 - перейти к сообщению
Доброго времени суток. Нашёл код, который выбирает из массива файл с указанной в этом скрипте периодичностью(в данном случае, выбираем новую картинку каждые две секунды).Немного модернизировал его(добавил пару PHP-функций в адрес изображений), но после загрузки страницы в браузере, картинка появляется только по истечении установленного в скрипте времени. Т.е., до появления первой картинки на её месте пусто. Если бы картинки менялись через пару секунд, то в принципе это небыло бы проблемой: зашел на сайт, и через две-три секунды видишь картинку, потом другую, третью и т.д... Но нужно выводить картинку через 40-60 минут, и в этом случае первые сорок минут картинка выводиться не будет. Как подправить вывод картинки сразу после загрузки страницы в браузере?

CODE (javascript):
скопировать код в буфер обмена
  1.     <script>
  2.         myImg=new Array(<?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  3.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  4.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  5.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  6.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  7.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  8.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  9.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  10.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  11.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  12.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  13.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  14.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  15.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  16.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  17.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  18.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  19.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  20.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  21.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  22.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  23.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  24.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico',
  25.                         <?=date('Ymd')?>+'/'+<?=rand(0,23)?>+'.ico');
  26.         flag=0;
  27.         myInt=setInterval('setMyInt()', 2000);
  28.         function setMyInt(){
  29.         flag++;
  30.         if(myImg[flag]){
  31.         document.all['mImg'].src=myImg[flag] ;
  32.         }else{
  33.         flag=1;
  34.         document.all['mImg'].src=myImg[flag] ;
  35.         }
  36.         }
  37.     </script>


CODE (html):
скопировать код в буфер обмена
  1. <img id='mImg' alt="&nbsp;" />
2. IllusionMH - 23 Апреля, 2014 - 11:07:35 - перейти к сообщению
Строитель, первую картинку выводить сразу в теле документа. либо сраз вызвать функцию вне интервала.

P.S. Не используйте строки в setInterval, можно просто передать функцию(без кавычек и скобок)
3. Строитель - 23 Апреля, 2014 - 11:14:12 - перейти к сообщению
IllusionMH пишет:
Строитель, первую картинку выводить сразу в теле документа. либо сраз вызвать функцию вне интервала.

P.S. Не используйте строки в setInterval, можно просто передать функцию(без кавычек и скобок)


А можете пример дать? Я в javascript очень плохо разбираюсь.
4. Строитель - 23 Апреля, 2014 - 15:30:01 - перейти к сообщению
IllusionMH пишет:
Строитель, первую картинку выводить сразу в теле документа. либо сраз вызвать функцию вне интервала.

P.S. Не используйте строки в setInterval, можно просто передать функцию(без кавычек и скобок)


Спасибо за совет, разобрался. Вот рабочее решение:

CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.         function rand(min, max){
  3.         return Math.floor(Math.random()*(max-min+1)+min);
  4.         }
  5.         setInterval(setMyInt, 2000);
  6.         function setMyInt(){
  7.         document.all['mImg'].src=<?=date('Ymd')?>+'/'+rand(0,23)+'.ico';
  8.         }
  9.     </script>


CODE (html):
скопировать код в буфер обмена
  1. <img id='mImg' src="<?=date('Ymd').'/'?><?=rand(0,23).'.ico'?>" alt="&nbsp;" />

 

Powered by ExBB FM 1.0 RC1