Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проблема со слайд шоу, помогите пожалуйста. (https://javascript.ru/forum/misc/3704-problema-so-slajjd-shou-pomogite-pozhalujjsta.html)

Ketch_Ozzy 15.05.2009 18:08

проблема со слайд шоу, помогите пожалуйста.
 
есть задание - слайд шоу, картинки меняются и каждая картинка это ссылка на другую страницу. само слайд шоу я сделал, просто каждую секунду меняются картинки - нулевая, первая, вторая, и потом заного по кругу



Код:

<script language="JavaScript">

i=0;
img_a=new Array(); 
img_a[0]=new Image();
img_a[1]=new Image();
img_a[2]=new Image();


img_a[0].src="pic0.jpg";
img_a[1].src="pic1.jpg"; 
img_a[2].src="pic2.jpg";


document.write("<img src='pic0.jpg'>");

i=0;

function img_b()     
                   
{
document.images[0].src=img_a[i].src;

i++;
if(i==3) i=0;
setTimeout("img_b()", 1000);
                         
                           
                           
}
img_b();
</SCRIPT>


а вот сделать чтобы картинка 0 ссылалась на сайт 0, картинка 1 на сайт 1, картинка 2 на сайт 2, я не смог и уже намучился :( начинается все хорошо: картинка 0 и картинка 1 работают, а вторая уже тупо не появляется :( цикл тот же самый же.

Код:

<script language="JavaScript">
<!--
i=0;
img_a=new Array(); 
img_a[0]=new Image();
img_a[1]=new Image();
img_a[2]=new Image();

img_a[0].src="pic_0.jpg";
img_a[1].src="pic_1.jpg"; 
img_a[2].src="pic_2.jpg";

function img_b()               
{

document.write("<a href='sait_"+i+".html'><img src='pic_"+i+".jpg'></a>");
i++;
if(i>2) i=0;
setTimeout("img_b()", 1000);
                           
                             
                           
}

img_b();

</SCRIPT>


faunder 15.05.2009 18:37

Ответ на вопрос
 
Логичнее использовать в слайд шоу функцию setInterval

function img_b()
{
    if ( i > 2 )
    {
          i = 0;
    }
    document.write("<a href='sait_"+i+".html'><img src='pic_"+i+".jpg'></a>");
    i++;
}



в конце просто вызвать её setInterval('img_b()', 1000);

И всё.

Ketch_Ozzy 15.05.2009 19:02

так вообще ничего не работает.

faunder 15.05.2009 19:34

Всё работает держи код!
 
<script language="JavaScript">
       var imgs = new Array();
       imgs[0] = new Image();
       imgs[1] = new Image();
       imgs[2] = new Image();
       
       imgs[0].src= '1.jpg';
       imgs[1].src= '2.jpg';
       imgs[2].src= '3.jpg';
       
       var i = 0;
       
       function show()
       {
          if ( i > 2 )
          {
              i = 0;
          }
          
          document.write('<a href="site_' + i + '.html">Image' + i + '</a>');  
          i++; 
       }
       
       setInterval('show()', 1000);
    </script>

Ketch_Ozzy 15.05.2009 19:55

ты точно проверял? в каком браузере?

Ketch_Ozzy 15.05.2009 23:34

просто реально твой код не работает.


Часовой пояс GMT +3, время: 16:19.