1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
function boxFading(BoxAnim,interval){
this.boxAnim = this.getElement(BoxAnim);
this.listeImage = new Array();
this.interval = interval*1000;
this.IsIE=!!document.all;
// permet de définir l'image a afficher
this.currentIndex = 0 ;
this.imgMax = 0;
var temp = this;
//Pour combler un bug ie, on attend le chargement complet de la page
if ( typeof(window.addEventListener) != "undefined" )
window.addEventListener( "load", function(){
temp.init()
}, false );
else{
window.attachEvent( "onload", function(){
temp.init()
} );
}
}
boxFading.prototype.changeImage = function(){
var next = (this.currentIndex+1 > this.imgMax) ? 0:this.currentIndex+1;
this.fade(100,0,this.listeImage[this.currentIndex]);
this.fade(0,100,this.listeImage[next]);
if(this.currentIndex == this.imgMax){
this.currentIndex = 0;
}
else{
this.currentIndex++;
}
}
boxFading.prototype.init = function(){
//On récupère toutes les images de la div
this.listeImage = this.boxAnim.getElementsByTagName('img');
//On assigne la valeur maximum
this.imgMax = this.listeImage.length-1;
this.listeImage[0].style.display = "block";
//Assignation du timer sur chaque image
for(var i = 0 , l = this.listeImage.length ; i < l ; i++){
this.listeImage[i].timer = null;
//Ajout du filtre pour combler un bug ie
if(this.IsIE)
{
this.listeImage[i].style.filter=(i == 0) ?'alpha(opacity=100)':'alpha(opacity=0)';
this.listeImage[i].filters[0].opacity=(i == 0) ? 100:0;
}
else
{
this.listeImage[i].style.opacity=(i == 0) ? 1:0;
}
}
var temp = this;
//On lance la méthode permettant de changer l'image
try {
var test = setInterval(function(){
temp.changeImage()
}, this.interval);
}
catch(err){
}
}
boxFading.prototype.getElement = function(element){
if(typeof(element) == "string"){
return document.getElementById(element);
}
else if(typeof(element) == "object"){
return (element);
}
else {
return null;
}
}
//Méthode permettant d'effectuer l'effet de fading sur un objet
boxFading.prototype.fade = function(start, end, objectToFade){
if (start == end) {
return false
}
objectToFade.style.display = "block";
this.IsIE ? objectToFade.filters[0].opacity = start : objectToFade.style.opacity = start / 100;
start >= end ? start -= 5 : start += 5;
var temp = this;
clearTimeout(objectToFade.timer);
if (start != end) {
objectToFade.timer = setTimeout(function(){
temp.fade(start, end , objectToFade);
}, 25);
}
else {
if(end == 0)
{
objectToFade.style.display = "none";
}
clearTimeout(objectToFade.timer);
}
}
var box1 = new boxFading('toto',5);
var box2 = new boxFading('titi',2);
var box3 = new boxFading('tata',5);
var box4 = new boxFading('tutu',5);
var box5 = new boxFading('tete',5); |
Partager