Avatar billede madsnb Nybegynder
20. december 2006 - 20:47 Der er 10 kommentarer og
1 løsning

Fjerne "næste" ved sidste billede i et galleri

Hejsa..

Jeg har aldrig lavet noget java før, og skal nu lige lave lidt alligevel.

Lidt små redigering har jeg lavet som virker, men hvis jeg gerne vil have at knappen "Næste" forsvinder ved sidste billede, og jeg ikke vil have knappen "Tilbage" ved første billede. Hvad gør jeg så!?

At jeg skal bruge if (which < photos.length-1) og if (which > 0), er jeg med på, men hvordan?


Her er koden:

<script language="JavaScript">

/*
DHTML slideshow script-
© Dynamic Drive (www.dynamicdrive.com)
For full source code, usage terms, and 100's more DHTML scripts, visit http://dynamicdrive.com
*/

var photos = new Array()
var photoslink = new Array()

if (which == undefined) {
    var which = 0;
}

//define images. You can have as many as you want. Images MUST be of the same dimensions (for NS's sake)
// Get content from robot
<%response.write generateJava%>
//photos[0]="folder/photo.jpg"

//Specify whether images should be linked or not (1=linked)
var linkornot=0

//Set corresponding URLs for above images. Define ONLY if variable linkornot equals "1"
photoslink[0]=""
photoslink[1]=""
photoslink[2]=""
photoslink[3]=""
photoslink[4]=""

//do NOT edit pass this line

var preloadedimages=new Array()
for (i=0;i<photos.length;i++){
preloadedimages[i]=new Image()
preloadedimages[i].src=photos[i]
}


function applyeffect(){
    if (document.all){
        photoslider.filters.revealTrans.Transition=Math.floor(12)
        photoslider.filters.revealTrans.stop()
        photoslider.filters.revealTrans.apply()
    }
}

function playeffect(){
    if (document.all)
        photoslider.filters.revealTrans.play()
}

function keeptrack(){
    window.status="Image "+(which+1)+" of "+photos.length
}


function backward(){
    if (which > 0){
        which--
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
    }
}

function forward(){
    if (which < photos.length-1){
        which++
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
        }

}

function showPrevNext() {
    document.write('<td width="50%" height="21"><p align="center"><a href="#" onClick="backward();return false">Tilbage</a></td>');
    document.write('<td width="50%" height="21"><p align="center"><a href="#" onClick="forward();return false">Næste</a></td>');

}


function getWhich() {
    return which;
}

function transport(){
    window.location=photoslink[which]
}

</script>
Avatar billede roenving Novice
24. december 2006 - 11:47 #1
Du skal lave noget vis/skjul på de elementer, som indeholder Frem- og Tilbage-links !o]

-- og da der er en funktion til at lave noget document.write(), må der høre noget mere (HTML- + javascript-kode !-) til ...
Avatar billede madsnb Nybegynder
24. december 2006 - 16:37 #2
Det må være dette vi skal bruge så

If Totalimages <> 0 Then
%>
<script>
if (linkornot==1)
document.write('<a href="java script:transport()">')
document.write('<img src="'+photos[0]+'" name="photoslider" style="filter:revealTrans(duration=1,transition=15)" border=0>')
if (linkornot==1)
document.write('</a>')
</script>
</center></td>
  </tr>
  <tr>

    <script language="JavaScript">

        showPrevNext();

    </script>

  </tr>
<%End If%>

Fornemmer lidt den er til mere end 30 poitns.. Hehe troede det var "bare lige"
Avatar billede roenving Novice
24. december 2006 - 23:57 #3
-- du kan nøjes med:

</center></td>
  </tr>
  <tr>

    <td width="50%" height="21"><p id="backLink" align="center" style="display:none;"><a href="#" onClick="backward();return false">Tilbage</a></td>
    <td width="50%" height="21"><p id="forwLink" align="center"><a href="#" onClick="forward();return false">Næste</a></td>

  </tr>

-- og så tilpasse forward- og backward-funktionerne sådan:

function backward(){
    if (which > 0){
        which--
        document.getElementById("backLink").style.display = which > 0 ? "block" : "none";
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
    }
}

function forward(){
    if (which < photos.length-1){
        which++
        document.getElementById("forwLink").style.display = which < photos.length-1 ? "block" : "none";
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
    }
}

-- så kan funktionen showPrevNext også undværes !-)
Avatar billede madsnb Nybegynder
25. december 2006 - 07:40 #4
Det virker okay med næste.. Men det kommer ingen tilbage knap, som der jo burde, når der er andre som ligger før det billede man ser på..
Avatar billede roenving Novice
25. december 2006 - 23:07 #5
Hrm, kan du vise et live eksempel ?-)
Avatar billede madsnb Nybegynder
26. december 2006 - 01:12 #6
Det vil jeg meget gerne, men jeg har ikke lyst til at linket kommer ud til andre.

Er det ok hvis jeg overgiver linket på andes vis, og vi naturligvis poster løsningen her?
Avatar billede roenving Novice
26. december 2006 - 01:15 #7
Jepz, brug bare min mail-adresse, men nu er jeg ved at blive lidt rusten, så en ordentlig analyse er ikke sikker i nat !-)
Avatar billede madsnb Nybegynder
26. december 2006 - 01:42 #8
Jeg var lige ved at sende en mail, men nu fik jeg det til at virke!

Ændrede forward og backwayd til:

function backward(){
    if (which > 0){
        which--
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
        document.getElementById('nextButton').innerHTML = 'Næste';
    }
   
    if (which == 0) {
            document.getElementById('prevButton').innerHTML = '';
    }
}

function forward(){
    if (which < photos.length-1){
        which++
        applyeffect()
        document.images.photoslider.src=photos[which]
        playeffect()
        keeptrack()
        document.getElementById('prevButton').innerHTML = 'Tilbage';
    }
   
    if (which == photos.length-1) {
        document.getElementById('nextButton').innerHTML = '';
    }
}

HTML koden til at indsætte knapperne er nu således:

    <td width="50%" height="21"><p align="center"><a href="#" id="prevButton" onClick="backward();return false"></a></p></td>
    <td width="50%" height="21"><p align="center"><a href="#" id="nextButton" onClick="forward();return false">Næste</a></p></td>

Ellers tusinde tak for hjælpen!! Smid et svar og jeg accepterer.. Din hjælp inspirerede mig hehe
Avatar billede roenving Novice
26. december 2006 - 02:25 #9
Oki '-)

-- men brug ikke innerHTML, hvis du skal frmtidssikre det en anelse, brug i stedet .firstChild.nodeValue = "Tilbage" / "&nbsp;" !-)
Avatar billede madsnb Nybegynder
26. december 2006 - 02:28 #10
Det skal jeg så undlade, selvom hele sitet nok snart står for opgradering..

Jeg brygger lidt videre på noget en anden har lavet for længe siden, og dokumentationen hænger temmelig meget, samt en masse andet.

Tak for rådet, men gå så i seng ;-)
Avatar billede roenving Novice
26. december 2006 - 02:32 #11
*lol*

-- og tak for point ;~}
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