Avatar billede dk-andersson Nybegynder
06. august 2009 - 09:01 Der er 4 kommentarer og
1 løsning

img slidshow

Hey

Har et problem med dette script. billede funktion som den er nu virker rigtig fint. Men vil gerne tilføje en funktion som automatiske køre billederne mod højre side. Og når man så holder musen over en af pilen køre den hurtiger mod den pågælende side. Ud over det vil jeg gerne have den til at loop sådan at der ikke kommer nogen pause uden billeder.

html/php kode:

<div id="sld1" style=" left:0; position:absolute; white-space:nowrap;">
                            <table border="0" cellpadding="0" cellspacing="0">
                                <tr>
                                    <?php
                                                                   
                                                                //Opretter news slidshow
                                                                    $result_news = dbquery("select * from ".$_SESSION['sprog']."_events");
                                                                        while ($row = dbarray($result_news)) {
                                                                            $billede    =    $row['billede_1'];
                                                                            $id            =    $row['id'];
                                                                            ?><td class="img_slidshow"><div id="slidshow_<?=$id;?>" class="slidshow_normal" onmouseover="this.className='slidshow_trans'; document.getElementById('slidshow_text_<?=$id;?>').className='slidshow_trans_text'" onmouseout="this.className='slidshow_normal'; document.getElementById('slidshow_text_<?=$id;?>').className='slidshow_normal_text'" onclick="lightbox('<?=$id;?>', '<?=$_SESSION['sprog'];?>');" ><img src="upload/events/<?=$billede;?>" style="height:91px; width:159px;" align="middle" alt="<?=$navn;?>" /></div></td><?php
                                                                        }
                                                                       
       
                                                    ?>
                                </tr>
                                <tr>
                                                    <?php        $result_news = dbquery("select * from ".$_SESSION['sprog']."_events");
                                                                        while ($row = dbarray($result_news)) {
                                                                            $navn        =  $row['event_navn'];
                                                                            $id            =    $row['id'];
                                                                        ?><td><div id="slidshow_text_<?=$id;?>" class="slidshow_normal_text" onmouseover="this.className='slidshow_trans_text'; document.getElementById('slidshow_<?=$id;?>').className='slidshow_trans'" onmouseout="this.className='slidshow_normal_text'; document.getElementById('slidshow_<?=$id;?>').className='slidshow_normal'" onclick="lightbox('<?=$id;?>', '<?=$_SESSION['sprog'];?>');" ><?=$navn;?></div></td><?php
                                                                        } ?>
                                </tr>
                            </table>
                        </div>



java script:
/*Function til at start scroll af event billeder */
        var Sld_1 = 0;
            function start_scroll(a) {
               
       
                if (a == 'left') {
                    scroll_left = window.setInterval('scrollSlides_right()', 1);
                } else {
                      scroll_right = window.setInterval('scrollSlides_left()', 1);
                }
            }

/*Function som scroll mod venstre. Event billeder og beregner scroll længede.  */   
            function scrollSlides_left() {
                var sld1width = document.getElementsByTagName("div")["sld1"].offsetWidth - 870;
                if(Sld_1 > -sld1width) {
                    Sld_1 = Sld_1 - sld1speed;
                    document.getElementById("sld1").style.left = Sld_1+"px";
                  }
              }

/*Function som scroll mod højre. Event billeder og beregner scroll længede.  */     
              function scrollSlides_right() {
                  if(Sld_1 < 0) {
                      Sld_1 = Sld_1 + sld1speed;
                      document.getElementById("sld1").style.left = Sld_1+"px";
                  }
              }
Avatar billede dk-andersson Nybegynder
06. august 2009 - 11:43 #1
har selv løst problemet.. Men vil gerne lige vide hvorfor denne kode stumpe ikke virker?
window.setInterval("scrollSlides('right,10')",10);

Fejlen er at den i scrollSlides kommer variablerne ud i kun en hvorfor?


<script type="text/javascript">
    <!--
    var Sld1_Len             = 1224;
    var Sld_1                 = 0;
    var Sld_2                 = -Sld1_Len;
    var Sld_Left_Timer         = '';
    var Sld_Right_Timer     = '';
   
    function startscroll(a){
        if(a=='left') {
            clearInterval('Sld_Timer');
            Sld_Left_Timer = window.setInterval("scrollSlides('left,10')",10);

        } else if(a=='right') {
            clearInterval(Sld_Timer);
            Sld_Right_Timer = window.setInterval("scrollSlides('right,10')",10);
        }else if(a=='normal') {
            if(Sld_Left_Timer !=null) {
                clearInterval(Sld_Left_Timer);
            } else if(Sld_Right_Timer !=0) {
                        clearInterval(Sld_Right_Timer);
            }
            Sld_Timer = window.setInterval("scrollSlides('normal, 1')",40);
        }
    }
   
    function scrollSlides(direction, slides_speed){
       
        if(direction=='normal') {
        if(Sld_1> 1224){
            Sld_1 = -Sld1_Len;
        }
        if(Sld_2> 1224){
            Sld_2 = -Sld1_Len;
        }
              Sld_1=Sld_1+slides_speed;
              Sld_2=Sld_2+slides_speed;
         
      } else if(direction=='left') {
            if(Sld_1<0-Sld1_Len){
                Sld_1 = Sld1_Len;
           
            }
            if(Sld_2<0-Sld1_Len){
                Sld_2 = Sld1_Len;
            }
           
            Sld_1=Sld_1-1;
              Sld_2=Sld_2-1;
        }
       
        document.getElementById("sld1").style.left = Sld_1+"px";
        document.getElementById("sld2").style.left = Sld_2+"px";
    }
Avatar billede majbom Novice
07. august 2009 - 14:40 #2
window.setInterval("scrollSlides('right,10')",10);

virker ikke fordi du pakker funktionen scrollSlides ind i gåseøjne, prøvmed:

window.setInterval(scrollSlides('right,10'),10);
Avatar billede dk-andersson Nybegynder
07. august 2009 - 15:59 #3
tsk det virker som ønskede. smid et svar
Avatar billede majbom Novice
11. august 2009 - 20:18 #4
super :)
Avatar billede majbom Novice
12. august 2009 - 15:43 #5
tak for point, omend det måske var lige i overkanten med 200
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester