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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| //recherche tous les élements cités
var diapos=document.getElementsByClassName("diapos");
var buttonLft=document.getElementById("carouselLeft");
var buttonRgt=document.getElementById("carouselRight");
var num=[];
var coolDown=0;
var nextDiapo=2;
var carouselMaster = { //fonctionnement carousel (boucle for)
init: function(){
for(var i=0;i<diapos.length;i++)
{
num[i] = i;
this.pose(diapos[i],num[i]);
}
},
// Initialise les propriétés de la position
position: function(stl, zInd, opa, rotY, transX, transZ){
coolDown=0;
stl.style.zIndex = zInd;
stl.style.opacity = opa;
stl.style.transform = "rotateY(" + rotY + "deg) translate3d(" + transX + "px,0," + transZ + "px)";
},
pose: function(stl, x){
switch (x) {
case 0 :
this.position(stl, 1, 1, 0, 0, 0);
break;
case 1 :
this.position(stl, 0, 0.6, -80, -100 ,-600);
break;
case 2 :
this.position(stl, -1, 0.3, -80, -100,-800);
break;
case 3 :
this.position(stl, -2, 0, -80, -100,-1000);
break;
case 4 :
this.position(stl, -2, 0, 80, 100 ,-1000);
break;
case 5 :
this.position(stl, -1, 0.3, 80, 100 ,-800);
break;
case 6 :
this.position(stl, 0, 0.6, 80, 100 ,-600);
break;
default :
this.position(stl, 1, 0, 0,0,0);
}
},
coolingDown: function(){//retour position initiale
if(coolDown<1)
coolDown=1;
},
nextDiapos: function(){
if(coolDown>=7)//position à 1 pour démarrage carousel
{
if(nextDiapo===0)
{
roll.min();
nextDiapo=15;//pose à déterminer pour le carousel
}
else
nextDiapo--;
}
}
}
var roll = { //fontionnement du rouleau
plus: function(){
for(var i=0;i<num.length;i++)
{
num[i]++;
if(num[i]>6)
num[i]=0;
carouselMaster.pose(diapos[i],num[i]);
}
},
min: function(){
for(var i=0;i<num.length;i++)
{
num[i]--;
if(num[i]<0)
num[i]=6;
carouselMaster.pose(diapos[i],num[i]);
}
}
}
carouselMaster.init();
//creation gestionnaire d'événement touche clavier
document.addEventListener("keydown", function(e){
nextDiapo=5;
if(coolDown>=1)
{
if(e.keyCode==37)
{
roll.plus();
}
else if(e.keyCode==39)
{
roll.min();
}
}
});
//creation événement clic gauche
buttonLft.addEventListener("click", function(e){
nextDiapo=5;
if(coolDown>=1)
{
roll.plus();
}
});
//creation événement clic droit
buttonRgt.addEventListener("click", function(e){
nextDiapo=5;
if(coolDown>=1)
{
roll.min();
}
});
//delai carousel
setInterval(carouselMaster.nextDiapos, 1200);
setInterval(carouselMaster.coolingDown, 250); |
Partager