Bonjour,
j'ai rédigé un slideshow en JS et CSS3 qui fonctionne bien
http://sentrais.eu/diaporama_v-7/diaporama-7.htm
avec un preload de ses 9 images.
Accessoirement, un script minimaliste visualise une barre de progression du preload, de 10 en 10px. Cette barre change ensuite de couleur aussitôt que le preload soit achevé (<1s/2.4Mo pour une connexion à débit "normal"), puis disparaît gentiment.
Je me suis bien assuré que la mesure du preload progressif ne soit pas une sonde Pitot gélive d'AirBus, ou inerte d'eau vide de la centrale nucléaire de Fukushima ou de Three Mile Island : ce serait un vilain programme initial ...
Or tout semble vraiment bien fonctionner, mais-mais-mais je "sèche" pour l'écriture d'une boucle qui simplifierait avec bonheur cette écriture si d'aventure le diaporama proposait plusieurs dizaines d'images.
Auriez-vous une bonne idée, et notamment pour la fonction barre() qui, déjà s'écrit méthodiquement 9 x ?
Merci.
Entretemps, voici le script actuel :
Modifié par pictural (29 Oct 2016 - 16:50)
j'ai rédigé un slideshow en JS et CSS3 qui fonctionne bien
http://sentrais.eu/diaporama_v-7/diaporama-7.htm
avec un preload de ses 9 images.
Accessoirement, un script minimaliste visualise une barre de progression du preload, de 10 en 10px. Cette barre change ensuite de couleur aussitôt que le preload soit achevé (<1s/2.4Mo pour une connexion à débit "normal"), puis disparaît gentiment.
Je me suis bien assuré que la mesure du preload progressif ne soit pas une sonde Pitot gélive d'AirBus, ou inerte d'eau vide de la centrale nucléaire de Fukushima ou de Three Mile Island : ce serait un vilain programme initial ...
Or tout semble vraiment bien fonctionner, mais-mais-mais je "sèche" pour l'écriture d'une boucle qui simplifierait avec bonheur cette écriture si d'aventure le diaporama proposait plusieurs dizaines d'images.
Auriez-vous une bonne idée, et notamment pour la fonction barre() qui, déjà s'écrit méthodiquement 9 x ?
Merci.
Entretemps, voici le script actuel :
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 = new Image();
var img5 = new Image();
var img6 = new Image();
var img7 = new Image();
var img8 = new Image();
var img9 = new Image();
function barre()
{
var b = document.getElementById("barre");
var t = document.getElementById("temoin");
var curr_width = parseInt(t.style.width); // Supprime le "px" et ne conserve que la valeur absolue ...
t.style.width = (curr_width + 10) +"px"; // pour lui additionner 10.
w = t.style.width;
if(w == "90px" || !w) // Au chargement achevé (9x10px=90px) ...
{
t.style.background="lime"; // la barre change de couleur ...
setTimeout(function(){b.style.opacity="0";b.style.transition="opacity ease 3s"},500) // puis elle disparaît.
}
}
// Applique la progression de la barre de chargement, de 10px en 10px
img1.onload=barre;
img2.onload=barre;
img3.onload=barre;
img4.onload=barre;
img5.onload=barre;
img6.onload=barre;
img7.onload=barre;
img8.onload=barre;
img9.onload=barre;
// Charge les images
img1.src = 'i1.png';
img2.src = 'i2.png';
img3.src = 'i3.png';
img4.src = 'i4.png';
img5.src = 'i5.png';
img6.src = 'i6.png';
img7.src = 'i7.png';
img8.src = 'i8.png';
img9.src = 'i9.png';
Modifié par pictural (29 Oct 2016 - 16:50)