EFFET DE CASCADE SUR DES IMAGES AVEC TRANSPARENCE...
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
13 mai 2008 à 07:35
dploux
Messages postés2Date d'inscriptionmercredi 4 février 2009StatutMembreDernière intervention15 mai 2010
-
15 mai 2010 à 11:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
dploux
Messages postés2Date d'inscriptionmercredi 4 février 2009StatutMembreDernière intervention15 mai 2010 15 mai 2010 à 11:09
Le script est parfait pour un effet sur une image mais quel dommage de ne pas pouvoir l'utiliser avec six images différentes sur le NET alors qu'il fonctionne très bien sur IE. à suivre
devsteph
Messages postés15Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention25 octobre 2010 13 déc. 2009 à 09:44
salut
pourquoi mes images ne passent pas sous FF. On voit le cadre des images sans les images alors que sous IE7, c est impec.
merci
steph
ralecul
Messages postés111Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 1 août 2008 15 mai 2008 à 10:43
Salut!
J'ai modifié ton code sans chercher à comprendre comment il marche, il y a donc peut-être quelques erreurs.
Voici donc une version objet de ton code (bien que l'on ne puisse pas vraiment l'instancier plusieurs fois).
mickaelpfr
Messages postés197Date d'inscriptionmardi 18 février 2003StatutMembreDernière intervention29 avril 20092 13 mai 2008 à 11:11
Salut :)
alors , je vais essayer de faire quelques remarque constructives ;)
- code absolument pas commenté /!\
- Lenteur due au fait que tu lance un timer a chaque boucle
- tu refait des calculs qui devrait être des constantes ( exemple : document.body.clientWidth/2 )
- essaye de passer en objet tu y gagnera en clarté, en utilisation et en rapidité ;)
lakichemole
Messages postés253Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention18 mai 2009 13 mai 2008 à 10:24
Ba moi c'est le contraire^^ Sous Firefox ça marche nikel sous IE6 ça rame un peu :) Sinon jolie effet ça me donne des idée notement pour faire un diaporama!
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 13 mai 2008 à 07:35
Salut,
comme tu l'a dit il y a une de ces lenteur sur firefox, je crois que j'ai atendu 2 minutes !
Sinon très bel effet !
PS : j'attend de voir l'amélioration si il y en a une pour noter !
15 mai 2010 à 11:09
13 déc. 2009 à 09:44
pourquoi mes images ne passent pas sous FF. On voit le cadre des images sans les images alors que sous IE7, c est impec.
merci
steph
15 mai 2008 à 10:43
J'ai modifié ton code sans chercher à comprendre comment il marche, il y a donc peut-être quelques erreurs.
Voici donc une version objet de ton code (bien que l'on ne puisse pas vraiment l'instancier plusieurs fois).
<html>
<head>
<title>Cascading Effect</title>
</head>
<script type="text/javascript">
new CascadingStyle("container");
/*
var effect = new CascadingStyle("container", {
onStart : function() { alert('start') },
onStop : function() { alert('stop') },
disableAutostart : true,
interval : 150
});
effect.start();
setTimeout(function() { effect.stop(); }, 10000);
*/
function $(id)
{
return document.getElementById(id);
}
function CascadingStyle(div, options)
{
var _options = options || {};var _div typeof(div) "string" ? $(div) : div;
var _imgs = _div.getElementsByTagName('img');
var _interval = _options.interval || 100;
var _disableAutostart = _options.disableAutostart || false;
var _onStart = _options.onStart || false;
var _onStop = _options.onStop || false;
var _working;
var _haut = [0,25,50,75,100,125];
var _hmax;
var _pic;
var _int;
function move()
{
for (var i=0; i<_imgs.length; ++i)
{
var img = _imgs[i];
img.style.top = _haut[i] + "px";
img.height = 50+2*_haut[i];
img.style.left = document.body.clientWidth/2 - img.width/2 + "px";
img.style.zIndex = _haut[i];
var pctge = 95*_haut[i]/(document.body.clientHeight - img.height);
img.style.filter = "alpha(opacity="+2*Math.sqrt(2500-(pctge-50)*(pctge-50))+")";
img.style.opacity = pctge/100;
if (_haut[i] < (document.body.clientHeight - img.height))
_haut[i] = _haut[i]+2;
else
{
if (i+1 == _imgs.length)
_haut[i] = _haut[0] - _int;
else
_haut[i] = _haut[i+1] - _int;
}
}
}
this.start = function()
{
_hmax = (document.body.clientHeight-50)/(1+2);
_int = _hmax/6.25;
for(var i=1; i<_imgs.length+1; i++)
_haut[i]=i*_int;
clearInterval(_working);
_working = setInterval(move, _interval);
if (_onStart)
_onStart(this);
};
this.stop = function()
{
clearInterval(_working);
if (_onStop)
_onStop(this);
};
if (!_disableAutostart)
this.start();
}
</script>
</html>
13 mai 2008 à 11:11
alors , je vais essayer de faire quelques remarque constructives ;)
- code absolument pas commenté /!\
- Lenteur due au fait que tu lance un timer a chaque boucle
- tu refait des calculs qui devrait être des constantes ( exemple : document.body.clientWidth/2 )
- essaye de passer en objet tu y gagnera en clarté, en utilisation et en rapidité ;)
13 mai 2008 à 10:24
13 mai 2008 à 07:35
comme tu l'a dit il y a une de ces lenteur sur firefox, je crois que j'ai atendu 2 minutes !
Sinon très bel effet !
PS : j'attend de voir l'amélioration si il y en a une pour noter !