Hi, ik ben een totale noob in Javascript maar ik heb het volgende scriptje:
<script language="JavaScript1.1">
<!--
var slidespeed=3000 // snelheid in milliseconden
//verander hieronder de namen van de foto's
var slideimages=new Array("01.jpg","02.jpg","03.jpg","04.jpg")
//specificeer de foto's achtereenvolgns met de gewenst url
var slidelinks=new Array("http://www.link.nl","http://www.link.nl","http://www.link.nl","http://www.link.nl")
var imageholder=new Array()
var ie55=window.createPopup
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
function gotoshow(){
window.location=slidelinks[whichlink]
}
//-->
</script>
Is het mogelijk om met PHP een map + submappen in te lezen waar de foto's in staan. En dat in de array te zetten ipv dat dit hand mating moet? Of kun je geen php gebruiken in JS?
Proberen kan geen kwaad.
PHP = ServerSide
Javascript = ClientSide
Wat wil zeggen: Javascript wordt pas gemaakt als PHP klaar is, dus je kan gewoon PHP de javascript laten uitspugen, en dus ook de foto's in de JS array zetten.
Hier kan je informatie vinden over hoe je in php een map uit kan lezen. Staan voorbeeldjes bij. Je JavaScript had je al, dus je moet alleen zorgen dat de foto's in die array komen te staan. Dit doe je door de php waarden in je javascript te echo'en.
Verder gebruik je is_dir() om te bepalen of een gevonden item in een map een directory is. Deze kan je daarna ook uit gaan lezen.
k heb wel een systeem die leest de dingen uit de map en zet ze in een soort gallery moet je der alleen een slideshow omheen bouwen..
hier de link en de download: http://moli.awardspace.com/
<?php
//eerst de array aanmaken
$bestanden = array();
$link = array();
$map = 'pictures/';
if ($handle = opendir($map)) {
/* Dit is de juiste manier om door een directory te wandelen. */
while (false !== ($file = readdir($handle)))
{
$bestanden[]= $file;
}
}
?>
<html>
<head>
<script language="JavaScript1.1">
<!--
var slidespeed=3000 // snelheid in milliseconden
//verander hieronder de namen van de foto's
var slideimages=new Array<?php echo $bestanden; ?>
//specificeer de foto's achtereenvolgns met de gewenst url
var slidelinks=new Array("link.htm")
var imageholder=new Array()
var ie55=window.createPopup
for (i=0;i<slideimages.length;i++){
imageholder[i]=new Image()
imageholder[i].src=slideimages[i]
}
function gotoshow(){
window.location=slidelinks[whichlink]
}
//-->
</script>
</head>
<body>
<p align="center">
<a href="javascript:gotoshow()"><img src="<?php echo $map.$bestanden[0]; ?>" name="slide" border=0 style="filter:progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=15,Duration=1)" width="271" height="177"></a>
<script language="JavaScript1.1">
<!--
var whichlink=0
var whichimage=0
var pixeldelay=(ie55)? document.images.slide.filters[0].duration*1000 : 0
function slideit(){
if (!document.images) return
if (ie55) document.images.slide.filters[0].apply()
document.images.slide.src=imageholder[whichimage].src
if (ie55) document.images.slide.filters[0].play()
whichlink=whichimage
whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0
setTimeout("slideit()",slidespeed+pixeldelay)
}
slideit()
//-->
</script>
</body>
</html>
Echter spuigt hij niks uit bij $bestanden. Heb ik het javascript zo goed onderbroken?
Klik anders maar eens op de volgende link, en daarna op het blauwe slideshow icoontje, dan komt er een popup waarin de slideshow verschijnt, bekijk dan de source maar. Tis geen perfecte oplossing, maar voldoet prima in mijn geval:
@baarr, ik heb het nu in een loopje staan. Alleen hoe roep ik het nu op? Als ik jou source kijk verwijs je naar een div die ik niet in jou css kan vinden.