Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Slideshow PHP:llä

Sivun loppuun

Wee [10.10.2008 13:00:12]

#

Hmm... Olisiko mahdollista toteuttaa kuvien slideshow php:lla. Minulle kun tuli pieni ongelma, kun tein javascriptillä slideshown, ja se ei toiminut palvelimella, toisin kuin omalla koneellani. Miten slideshow:hn saisi fade-efektin kuvien välille? Tai, että se alkaisi sattumanvaraisesta kuvasta?

Kiitos jo etukäteen!

Metabolix [10.10.2008 13:41:00]

#

Olet luultavasti tehnyt jotain väärin, nimittäin JS ei ole riippuvaista sijainnistaan paitsi tietenkin tiedostopolkujen kannalta. Pidithän hakemistorakenteen samanlaisena ja et kai ole käyttänyt absoluuttisia polkuja?

PHP:llä tuollaista ei voi tehdä, koska se ajetaan palvelimella. Voit enintään antaa käyttäjälle sivun, joka pyytää lataamaan seuraavan sivun tietyn ajan kuluttua, mutta tämä on varsin kömpelöä.

Sulaviin efekteihin tarvitset luultavasti Javaa tai Flashia. Toki JS:llä voi yrittää muutella kuvan läpinäkyvyysominaisuutta, mutta tällä tavalla päivitysnopeus tuskin riittää.

Wee [10.10.2008 17:00:40]

#

JS:llä homma hoitui hyvin läpinäkyvyyksillä, ei ongelmia. Tarkistan asiaa vielä... Eli periaatteessa ei ole php:lla mahdollista?

Entäpä, jos käyttäjä aina sivun latauksessa lataisi sattumanvaraisen kuvan?

temu92 [11.10.2008 02:39:49]

#

No vaikka esim.

$kuva = rand(1, 5);
echo "<img src=\"kuvat/kuva".$kuva.".jpg\" />";

Ei se tuon omituisempaa ole.

Jos taas haluaa varmistaa, että kuva on oikeasti olemassa voi käyttää file_exists() funktiota tai haluaa vielä tehdä enemmänkin hienouksia voi käyttää opendir() & readdir() funktioita kuvakansion tiedostojen selaukseen ja sitten tulostaa sattumanvaraisesti joku niistä.

<?php
	$kansio	= opendir("kuvat/");
	$kuvat	= array();
	while($tiedosto = readdir($kansio)){
		if(exif_imagetype("kuvat/".$tiedosto, IMAGETYPE_JPG)) $kuvat[] = $tiedosto;
	}

	$kuva	= rand(0, count($kuvat));
	echo "<img src=\"kuvat/".$kuvat[$kuva]."\" />";
?>

Tuo versio ei ole riippuvainen tiedostonimistä.

Wee kirjoitti:

Minulle kun tuli pieni ongelma, kun tein javascriptillä slideshown, ja se ei toiminut palvelimella, toisin kuin omalla koneellani.

Javascript suoritetaan selaimessa, ei palvelimella. Mikäköhän sitten on vikana?

Wee [11.10.2008 11:22:31]

#

En tiedä... Ongelma oli aika mystinen. Tiedustelin asiaa futuronilta, mutta eivät osanneet vastata. Täytyy kokeilla, toimiiko siellä js ylipäätään.

Antti Laaksonen [11.10.2008 11:54:29]

#

Onko toimimaton sivu nähtävillä jossain osoitteessa?

Ei ole oikein mahdollista, että HTML toimisi mutta JavaScript ei.

Lebe80 [11.10.2008 13:07:08]

#

Wee kirjoitti:

En tiedä... Ongelma oli aika mystinen. Tiedustelin asiaa futuronilta, mutta eivät osanneet vastata. Täytyy kokeilla, toimiiko siellä js ylipäätään.

<offtopic>Olisi hauska tietään kuinka paljon nämä kyselyt ruuhkauttavat palveluntarjoajia</offtopic>

Chiman [11.10.2008 14:00:38]

#

Wee kirjoitti:

Tiedustelin asiaa futuronilta, mutta eivät osanneet vastata. Täytyy kokeilla, toimiiko siellä js ylipäätään.

Palvelimen kannalta javascript on tekstiä. Jos saat nettisivun ladattua, javascript "toimii" palvelimen osalta, koska se koodi lähtee pyörimään vasta nettiselaimessasi.

Javascriptillä voi sitten käskyttää selainta tekemään erilaisia latauksia, joiden pitää kohdistua palvelimella oikeasti oleviin tiedostoihin. Laitapa debug-tulostuksia siihen koodiisi, niin näet esim. minkä nimisiä kuvatiedostoja yrität selaimeesi hakea.

PHP:lla slideshown voisi tehdä siten, että se palauttaisi sivun, jossa olisi viivästetty refresh-käsky seuraavan kuvan osoitteeseen.

Wee [12.10.2008 16:48:53]

#

@Antti = Ei ole enään, päivitin version, ja poistin sen slideshown... Voin toki laittaa sen version vielä nettiin, mutta siinä meneem muutama päivä, ennenkuin pääsen käsiksi niihin tiedostoihin.

LaNu [15.10.2008 21:50:33]

#

Metabolix kirjoitti:

Sulaviin efekteihin tarvitset luultavasti Javaa tai Flashia. Toki JS:llä voi yrittää muutella kuvan läpinäkyvyysominaisuutta, mutta tällä tavalla päivitysnopeus tuskin riittää.

Tuollainen on joskus tallentunut kirjanmerkkeihin: http://brainerror.net/scripts/javascript/blendtrans/. Näyttäisi toimivankin, joten kannattaa varmaan vilkaista. Jos ainoa vaatimus on kuvan fade-in ja out, niin ei siihen tarvitse Flashia tai Javaa sotkea. PHP:llä "perustukset" ja JS:llä (Ajaxilla) tilpehöörit.

Metabolix [15.10.2008 22:39:49]

#

LaNu kirjoitti:

Näyttäisi toimivankin, joten kannattaa varmaan vilkaista. — — PHP:llä "perustukset" ja JS:llä (Ajaxilla) tilpehöörit.

Niinpä näyttää. Ehkäpä näkemykseni selainten JS- ja renderöintinopeudesta on vääristynyt, kun olen testikäytössä ajanut IE:tä Winen avulla, jolloin se ei ainakaan minun kokemuksieni mukaan kykene tuollaiseen. Kai se sitten oikeassa Windowsissa toimii vikkelämmin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta