/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Fjerne preload af billeder i Slideshow
Fra : Jesper Andersen


Dato : 20-06-07 10:14

Hejsa...
Jeg har følgende kode som jeg bruger til et slideshow, og det fungere
som sådan okay, men fra man går ind på siden går der lidt tid inden
den bliver vist da den først skal loade alle billederne i showet.
Kan man på nogen måde lave det sådan at den kun loader et billede af
gangen mens den venter på næste billede ?

Min kode:
<script language="javascript" type="text/javascript">
var slideShowSpeed = 2000
var crossFadeDuration = 3
var Pic = new Array()
<?php
include("galdbcon.php");
$query2 = "select * FROM galleries WHERE domain=4 AND synlig=1 ORDER
BY id DESC LIMIT 1";
$result2 = mysql_query($query2) or die(mysql_error());

if($row2 = mysql_fetch_array($result2)) {

$path = "/home/www/galleri/".$row2[id]."/";
$handle = opendir($path);
while (($fil = readdir($handle)) !== false) {
if ($fil != "." && $fil != ".." && substr(strtolower($fil),-3) ==
"jpg") {
$images1[] = $fil;
}
}
closedir($handle);
$bib = $row2[id];
global $bib;
$firstpic1 = $images1[0];
global $firstpic1;
shuffle($images1);
$arraysize = 16;
if (count($images1) < 15) {
$arraysize = count($images1);
}

for ($i=0; $i<$arraysize; $i++) {
print "Pic[".$i."] = '/ugalleri/".$bib."/".$images1[$i]."'\n";
}
}
?>

var t
var j = 0
var p = Pic.length

var preLoad = new Array()
for (i = 0; i < p; i++){
preLoad[i] = new Image()
preLoad[i].src = Pic[i]
}

function runSlideShow(){
if (document.all){
document.images.SlideShow.style.filter="blendTrans(duration=2)"

document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"
document.images.SlideShow.filters.blendTrans.Apply()
}
document.images.SlideShow.src = preLoad[j].src
if (document.all){
document.images.SlideShow.filters.blendTrans.Play()
}
j = j + 1
if (j > (p-1)) j=0
t = setTimeout('runSlideShow()', slideShowSpeed)
}
</script>


Jesper Andersen

 
 
Bertel Lund Hansen (20-06-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 20-06-07 11:42

Jesper Andersen skrev:

> Kan man på nogen måde lave det sådan at den kun loader et billede af
> gangen mens den venter på næste billede ?

Man kan lave en side der kun viser ét billede og så via et
metatag eller et klik kalder sig selv med en nummervariabel
forøget med 1. Her er et eksempel hvor der ventes i 20 sekunder:

CSS:
#preload { display: none; }


PHP/HTML:
<?
$nummer=$_GET['nummer'];
$next=$nummer+1;
// der mangler lige lidt fidus til at styre listen med billednavne
?>
doctype ...
<head>
.... meget andet
<meta http-equiv='refresh' content='20; URL=slideshow.php?nummer=<?=$next?>'>
</head>

<body>
<div id='preload'>
<img src='<?=$billede[$next]?>.jpg' alt=''>
</div>

....

Arrayet med billednavne kan f.eks. hentes én gang for alle i en session-variabel.

if (isset($_SESSION['billede'])==false) hent billedlisten ...

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Jesper Andersen (20-06-2007)
Kommentar
Fra : Jesper Andersen


Dato : 20-06-07 11:49

Tak for forslaget, men det var ikke lige det jeg var ude efter.
Kan også se jeg er kommet til at poste i den forkerte gruppe.... skal
have været i javascript gruppen.

Sorry...

Jesper A

On Wed, 20 Jun 2007 12:42:21 +0200, Bertel Lund Hansen
<unospamo@lundhansen.dk> wrote:

>Jesper Andersen skrev:
>
>> Kan man på nogen måde lave det sådan at den kun loader et billede af
>> gangen mens den venter på næste billede ?
>
>Man kan lave en side der kun viser ét billede og så via et
>metatag eller et klik kalder sig selv med en nummervariabel
>forøget med 1. Her er et eksempel hvor der ventes i 20 sekunder:
>
>CSS:
>#preload { display: none; }
>
>
>PHP/HTML:
><?
>$nummer=$_GET['nummer'];
>$next=$nummer+1;
>// der mangler lige lidt fidus til at styre listen med billednavne
>?>
>doctype ...
><head>
>... meget andet
><meta http-equiv='refresh' content='20; URL=slideshow.php?nummer=<?=$next?>'>
></head>
>
><body>
><div id='preload'>
><img src='<?=$billede[$next]?>.jpg' alt=''>
></div>
>
>...
>
>Arrayet med billednavne kan f.eks. hentes én gang for alle i en session-variabel.
>
>if (isset($_SESSION['billede'])==false) hent billedlisten ...

Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste