Java Script - управление проигрыванием слайд-шоу

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем natalie, 5 дек 2006.

Статус темы:
Закрыта.
  1. natalie

    natalie Гость

    Здравствуйте,

    есть кнопки stop, play, previous slide - это управление слайд-шоу. функции вызываются, например для кнопки previous: <button onclick="previous()">Previous</button>

    Java Script все-время выдает ошибку "Недопустимый Аргумент" - передается в функцию f()...

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

    Код (Text):
    <script type="text/javascript">
    var i=0;
    var timer;
    var param='1';

    // array width's for slideshows - resized sizes, according to sets in admin area
    var widths = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slideWidth[$i]."',";}
    ?>]
    // array height's for slideshows - resized sizes, according to sets in admin area
    var heights = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slideHeight[$i]."',";}
    ?>]


    var descriptions = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['description'.$i]."',";}
    ?>]
    var links = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['link'.$i]."',";}
    ?>]

    var titles = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['title'.$i]."',";}
    ?>]

    var images = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['linkImage'.$i]."',";}
    ?>]

    function previous()
    {  timer=setInterval(f('2'),2000);}
    function stop(){clearInterval(timer);}
    function play(){
    timer=setInterval(f('1'),2000);
    }
    function f(param){

    if (param=='1'){
    img1.src='slides/'+images[(i=(i==<?php echo $amountOfSlides-1; ?>?0:i+1))];
    img1.width=widths[i];
    img1.height=heights[i];
    tit1.innerHTML=titles[i];
    link1.href=links[i];
    desc1.innerHTML=descriptions[i];
    }
    if (param=='2'){
    i=i-1;
    img1.src='slides/'+images[(i=(i==<?php echo $amountOfSlides-1; ?>?0:i+1))];
    img1.width=widths[i];
    img1.height=heights[i];
    tit1.innerHTML=titles[i];
    link1.href=links[i]
    desc1.innerHTML=descriptions[i];       
    }

    }
    </script>
     
  2. Kuljok

    Kuljok Гость

    Привет!
    Во всем коде не разбирался. Может еще где ошибки есть. Но в данном случае ошибка в вызове setInterval. Дело в том, что туда нужно передавать либо указатель на функцию (имя функции без скобок), либо вызов функции, но как строку. Т.е. вызов должен быть вида:

    Код (Text):
    time = setInterval("f('2')", 2000);
     
  3. natalie

    natalie Гость

    Спасибо,

    только скрипт уже написан, починен, запущен... мне сослуживцы помогли

    но все равно огромное спасибо :)
     
  4. Gisma

    Gisma Гость

    от жеж :eek: вечно нас опережают ;)
     
  5. Alex_soldier

    Alex_soldier Гость

    Натали, поделились бы с народом. Интересно все-таки!
     
  6. natalie

    natalie Гость

    Код (Text):
    <script type="text/javascript">
    var i=0;
    var timer;
    var param='1';

    // array width's for slideshows - resized sizes, according to sets in admin area
    var widths = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slideWidth[$i]."',";}
    ?>]
    // array height's for slideshows - resized sizes, according to sets in admin area
    var heights = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slideHeight[$i]."',";}
    ?>]


    var descriptions = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".str_replace("'","'",$slide['description'.$i])."',";}
    ?>]
    var links = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['link'.$i]."',";}
    ?>]

    var titles = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['title'.$i]."',";}
    ?>]

    var images = [<?php
    for ($i=1; $i<=$amountOfSlides; $i++)
    {echo "'".$slide['linkImage'.$i]."',";}
    ?>]

    function increment( _i ) {
    _i=(_i==<?php echo $amountOfSlides-1; ?>?0:_i+1);
    return _i;
    }

    function decrement( _i ) {
    _i=(_i==0?<?php echo $amountOfSlides-1; ?>:_i-1);
    return _i;
    }

    function render( i ) {
    var img1 = document.getElementById('img1');
    var tit1 = document.getElementById('tit1');
    var desc1 = document.getElementById('desc1');  
    var link1 = document.getElementById('link1');
    img1.src='slides/'+images[i];
    img1.width=widths[i];
    img1.height=heights[i];
    tit1.innerHTML=titles[i];
    link1.href=links[i]
    desc1.innerHTML=descriptions[i];
    }

    function stop(){
    clearInterval(timer);
    }

    function previous() {
    stop();
    i = decrement( i );
    render( i );
    }

    function palaing() {
    i = increment( i );
    render( i );
    }


    function next() {
    stop();
    i = increment( i );
    render( i );
    }

    function play(){
    timer=setInterval('palaing()',5000);
    }

    </script>
    в коде есть php вставки - это мы достали из базы select-ом картинки, которые собственно должны сменяться. у каждой картинки title, ссылка, description, ссылка для самой картинки.

    в html там, где должна появляться картинка, пишем:

    Код (Text):
    <div id="latest_slideshow">

    <div id="latest_slideshow_img">
    <a id="link1" href="<?php echo$slide["link1"]; ?>"><img id="img1" src="slides/<?php echo $slide["linkImage1"]; ?>" /></a>
    <div id="buttons"><button onclick="previous()">Previous</button>  <button onclick="play()">Play</button><button onclick="next()">Next</button> <button onclick="stop()">Stop</button></div>
    </div>



    <div><div id="tit1" class="latest_slideshow_head"><?php echo $slide["title1"]; ?></div></div>

    <div><div id="desc1" class="latest_slideshow_desc"><?php echo $slide["description1"]; ?></div><//div>
    </div>
    внизу страницы сразу запускаем слайд шоу: <script type="text/javascript">
    play();
    </script>

    получаем вот что:

    http://208.109.13.212/news/box.php
     
Загрузка...
Похожие Темы - Java Script управление
  1. itincorp
    Ответов:
    0
    Просмотров:
    61
  2. itincorp
    Ответов:
    0
    Просмотров:
    72
  3. Aaleks111
    Ответов:
    2
    Просмотров:
    191
  4. SvetlanaL
    Ответов:
    0
    Просмотров:
    165
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    182
Статус темы:
Закрыта.

Поделиться этой страницей