J'essaie actuellement de créer une boîte de navigation de diaporama simple et bon marché pour un client (quelque chose dans le genre de ce que dit, par exemple, Red Sox ou Gamespot utilisent sur leurs sites, mais loin, beaucoup plus simple). Jusqu'à présent, il se déroule bien, avec un problème - les images n'apparaissent pas lors d'une première visite. Ils n'apparaissent qu'après le rechargement de la page. Je pense que cela peut être une sorte de problème d'exécution, ou peut-être un problème de cache, mais je ne suis pas sûr de savoir comment y remédier. Mon code:Utilisation de jQuery Cycle et ajax pour créer dynamiquement un diaporama - les images ne se chargent pas immédiatement
PHP:
if (isset($_GET['start']) && "true" === $_GET['start'])
{
$images = array();
if ($dir = dir('images'))
{
//$count = 0;
while(false !== ($file = $dir->read()))
{
if (!is_dir($file) && $file !== '.' && $file !== '..' && (substr($file, -3) === 'jpg' || substr($file, -3) === 'png' || substr($file, -3) === 'gif'))
{
$lastModified = filemtime("{$dir->path}/$file");
$images[$lastModified] = $file;
//$images["image$count"] = $file;
//++$count;
}
}
echo json_encode($images);
}
else { echo "Could not open directory"; }
}
HTML et JavaScript:
<!doctype html>
<html lang="en-us">
<head>
<title>jQuery Cycle test</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.cycle.all.min.js"></script>
<style>
#slideshow a { margin: 0; padding: 0; color: #fff; }
</style>
</head>
<body>
<div id="slideshow">
</div>
</body>
<script type="text/javascript">
$.get('slideshow.php', {start : "true"}, function(data){
var images = JSON.parse(data);
for(var image in images){
$('#slideshow').append('<a href="images/' + images[image] + '"><img src="images/' + images[image] + '" alt="" /></a>');
}
$('#slideshow').cycle({
fx: 'cover',
direction: 'right',
timeout: 3000,
speed: 300
});
});
</script>
</html>
Je pense que je peux avoir besoin de retarder le moment de la fonction du cycle, ou peut-être forcer en quelque sorte à 'voir' les images la première fois à travers. Je ne suis pas sûr de savoir comment le faire.
Vous devriez probablement poster cela comme une question distincte. En outre, plus de détails sont nécessaires - que voulez-vous dire par «groupe d'images»? Noms de fichiers? Données d'image réelles? Et quelle partie ne fonctionne pas? Les images sont-elles chargées? Ne pas charger? –