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!
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ää.
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?
No vaikka esim.
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?
En tiedä... Ongelma oli aika mystinen. Tiedustelin asiaa futuronilta, mutta eivät osanneet vastata. Täytyy kokeilla, toimiiko siellä js ylipäätään.
Onko toimimaton sivu nähtävillä jossain osoitteessa?
Ei ole oikein mahdollista, että HTML toimisi mutta JavaScript ei.
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>
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.
@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.
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/
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.