begin process at 2012 05 28 12:50:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CAROUSELLE 3D

CAROUSELLE 3D


 Information sur la source

Note :
9,5 / 10 - par 6 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :slide show, carouselle, diaporama, image, photo Niveau :Débutant Date de création :18/09/2010 Date de mise à jour :11/03/2011 12:51:22 Vu / téléchargé :9 328 / 1 051

Auteur : kazma

Ecrire un message privé
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
comme son nom l'indique il s'agit d'un carouselle 3D j'ai fait en sorte de tout automatise dans le sens ou pour choisir la taille du carouselle il suffit uniquement de modifier sa taille dans le css les images s'adapteronts automatiquement et si on veut plus le configurer j'ai ajouter des commentaires dans le js je l'ai aussi equiper d'un prechargement,ainsi que d'un voile afin de visualiser les image en grand pour cela il suffit de cliquer sur l'image par contre il n'ai pas compatible avec ie 6 a cause de probleme avec le dom mais j'ai quand meme ajouter une autre source plus simple compatible avec ie 6

demo: http://scriptevol.toile-libre.org/elipse/elipse.ht ml

Source

  • var tbimage=['mini/tigre.jpg','mini/tigre.jpg','mini/graffitis.jpg','mini/arc-en-ciel.jpg','mini/bougies.jpg','mini/chameau.jpg','mini/foudre.jpg','mini/infrarouge.jpg','mini/arbres.jpg','mini/oiseaux.jpg','mini/fleuve.jpg'];
  • //tableau pour les images la premiere image est celle au centre du carouselle
  • preImages=new Array;
  • var setX=0
  • function souris(s){
  • dde=(navigator.vendor) ? document.body : document.documentElement;
  • setX =s.clientX + dde.scrollLeft;
  • }
  • navigator.appName.substring(0,3)=="Net" ? document.addEventListener("mousemove", souris, false) : document.attachEvent('onmousemove',function(){souris(event)});
  • function ellipse(){
  • var gaga=document.getElementById('genelipse')
  • if(typeof this.rot == 'undefined'){
  • this.rot=0
  • this.cocoef=0.35/1 // angle de l'elipse 1/1 donne un cercle
  • this.all=gaga.getElementsByTagName("img")
  • this.pi2=(Math.PI*2)/(this.all.length-1)
  • this.taillemage=gaga.offsetHeight/10 // taille des images
  • }
  • var oml=((gaga.offsetLeft+(gaga.offsetWidth/2))-setX)/2000 // vitesse de rotation
  • oml=oml>0 ? -oml : Math.abs(oml)
  • if(oml>0.02 || oml<-0.02){ // troue au centre afin que l'image reste fixe
  • if(this.rot>=Math.PI*2 || this.rot<=-(Math.PI*2)){
  • this.rot=0
  • }
  • this.rot=this.rot+oml
  • var rayon=(gaga.offsetWidth/2)-(this.taillemage/2)-25
  • var t=gaga.offsetHeight/2
  • for(var i=1;i<=this.all.length-1;i++){
  • var gogo=this.all[i]
  • var decal=this.rot+this.pi2*i
  • gogo.style.left=(Math.cos(decal)*rayon)+rayon+15+"px";
  • gogo.style.top=((Math.sin(decal)*rayon)*this.cocoef)+t+"px";
  • gogo.style.width=this.taillemage*(Math.sin(decal))+this.taillemage+"px";
  • var opasi=Math.sin(decal)+1
  • if(navigator.appName.substring(0,3)!="Mic"){
  • gogo.style.opacity=opasi;
  • }
  • else{
  • gogo.style.filter="alpha(opacity="+opasi*100+")"
  • }
  • if(Math.cos(decal)*rayon>40 || Math.cos(decal)*rayon>(-40)){
  • gogo.style.zIndex=1
  • }
  • else{
  • gogo.style.zIndex=0
  • }
  • }
  • }
  • if(arguments[0]=='depart'){
  • oxo=setInterval(ellipse,50)
  • }
  • }
  • function anul(){
  • clearInterval(oxo)
  • }
  • function changeelipse(e){
  • var lui=(navigator.appName.substring(0,3)=="Mic") ? event.srcElement : e.currentTarget;
  • var gaga=document.getElementById('genelipse')
  • var el=gaga.getElementsByTagName("img")[0]
  • var taille=lui.offsetWidth/lui.offsetHeight
  • el.setAttribute('src',lui.src)
  • el.style.left=(gaga.offsetWidth/2)-((taille*el.offsetHeight)/2)+'px'
  • }
  • function precharge(){
  • var valcomplet=0
  • var general=document.getElementById('genelipse')
  • if(typeof this.dema == 'undefined'){
  • this.dema='ok'
  • for (i = 0; i < tbimage.length; i++){
  • preImages[i] = new Image();
  • preImages[i].src = tbimage[i];
  • }
  • var constrution=document.createElement('div')
  • constrution.className='barrelipseid'
  • var constrution2=document.createElement('div')
  • constrution2.className='barrelipseid2'
  • var constrution3=document.createElement('span')
  • constrution3.className='barretxt'
  • constrution3.appendChild(document.createTextNode('00 %'))
  • constrution.appendChild(constrution2);
  • constrution.appendChild(constrution3);
  • general.appendChild(constrution);
  • }
  • for (i = 0; i < preImages.length; i++){
  • if(preImages[i].complete==true){
  • valcomplet++
  • }
  • }
  • general.getElementsByTagName("div")[1].style.width=(general.getElementsByTagName("div")[0].offsetWidth/preImages.length)*valcomplet+'px'
  • general.getElementsByTagName("span")[0].childNodes[0].nodeValue=Math.round((100/general.getElementsByTagName("div")[0].offsetWidth)*((general.getElementsByTagName("div")[0].offsetWidth/preImages.length)*valcomplet))+' %'
  • if(valcomplet==preImages.length){
  • general.removeChild(general.getElementsByTagName("div")[0]);
  • initelipse()
  • return false
  • }
  • setTimeout(precharge,100)
  • }
  • function initelipse(){
  • var general=document.getElementById('genelipse')
  • for(var i=0;i<=preImages.length-1;i++){
  • var constrution=document.createElement('img')
  • if(i==0){
  • constrution.className='centre';
  • }
  • if(i!=0){
  • constrution.setAttribute('onmouseover','changeelipse(event)');
  • constrution.className='imlipse';
  • constrution.setAttribute('onclick','prevoile(event)');
  • }
  • general.appendChild(constrution);
  • }
  • var all=general.getElementsByTagName("img")
  • for(var i=0;i<=all.length-1;i++){
  • var gogo=all[i]
  • gogo.setAttribute('src',preImages[i].getAttribute("src"));
  • gogo.onclick=prevoile
  • if(parseInt(navigator.userAgent.substring(30,31))<=7){
  • gogo.onmouseover=changeelipse;
  • }
  • }
  • if(parseInt(navigator.userAgent.substring(30,31))<=7){
  • general.attachEvent('onmouseover',function(){ellipse("depart")})
  • }
  • general.onmouseout=anul
  • general.setAttribute('onmouseover','ellipse("depart")');
  • all[0].style.left=(general.offsetWidth/2)-(all[0].offsetWidth/2)+'px'
  • ellipse()
  • }
  • function prevoile(e){
  • var lui=(navigator.appName.substring(0,3)=="Mic") ? event.srcElement : e.currentTarget;
  • var nomimg=lui.getAttribute("src").lastIndexOf("/")+1;
  • nomimg=lui.getAttribute("src").substring(nomimg);
  • voile('images/'+nomimg)
  • }
var tbimage=['mini/tigre.jpg','mini/tigre.jpg','mini/graffitis.jpg','mini/arc-en-ciel.jpg','mini/bougies.jpg','mini/chameau.jpg','mini/foudre.jpg','mini/infrarouge.jpg','mini/arbres.jpg','mini/oiseaux.jpg','mini/fleuve.jpg'];
				
				//tableau pour les images la premiere image est celle au centre du carouselle

preImages=new Array;

var setX=0

function souris(s){
dde=(navigator.vendor) ? document.body : document.documentElement;
setX =s.clientX + dde.scrollLeft;
}
navigator.appName.substring(0,3)=="Net" ? document.addEventListener("mousemove", souris, false) : document.attachEvent('onmousemove',function(){souris(event)});

function ellipse(){

var gaga=document.getElementById('genelipse')

if(typeof this.rot == 'undefined'){
this.rot=0
this.cocoef=0.35/1											// angle de l'elipse 1/1 donne un cercle
this.all=gaga.getElementsByTagName("img")
this.pi2=(Math.PI*2)/(this.all.length-1)
this.taillemage=gaga.offsetHeight/10   						// taille des images
}

var oml=((gaga.offsetLeft+(gaga.offsetWidth/2))-setX)/2000	// vitesse de rotation
oml=oml>0 ? -oml : Math.abs(oml)
if(oml>0.02 || oml<-0.02){									// troue au centre afin que l'image reste fixe

if(this.rot>=Math.PI*2 || this.rot<=-(Math.PI*2)){
this.rot=0
}

this.rot=this.rot+oml
var rayon=(gaga.offsetWidth/2)-(this.taillemage/2)-25
var t=gaga.offsetHeight/2

for(var i=1;i<=this.all.length-1;i++){
var gogo=this.all[i]
var decal=this.rot+this.pi2*i
gogo.style.left=(Math.cos(decal)*rayon)+rayon+15+"px";
gogo.style.top=((Math.sin(decal)*rayon)*this.cocoef)+t+"px";
gogo.style.width=this.taillemage*(Math.sin(decal))+this.taillemage+"px";

var opasi=Math.sin(decal)+1

if(navigator.appName.substring(0,3)!="Mic"){
gogo.style.opacity=opasi;
}
else{
gogo.style.filter="alpha(opacity="+opasi*100+")"
}

if(Math.cos(decal)*rayon>40 || Math.cos(decal)*rayon>(-40)){
gogo.style.zIndex=1
}
else{
gogo.style.zIndex=0
}
}
}
if(arguments[0]=='depart'){
oxo=setInterval(ellipse,50)
}
}

function anul(){
clearInterval(oxo)
}

function changeelipse(e){

var lui=(navigator.appName.substring(0,3)=="Mic") ? event.srcElement : e.currentTarget;
var gaga=document.getElementById('genelipse')
var el=gaga.getElementsByTagName("img")[0]
var taille=lui.offsetWidth/lui.offsetHeight
el.setAttribute('src',lui.src)
el.style.left=(gaga.offsetWidth/2)-((taille*el.offsetHeight)/2)+'px'
}

function precharge(){

var valcomplet=0
var general=document.getElementById('genelipse')

if(typeof this.dema == 'undefined'){
this.dema='ok'
for (i = 0; i < tbimage.length; i++){
    preImages[i] = new Image();
	preImages[i].src = tbimage[i];
	}
var constrution=document.createElement('div')
constrution.className='barrelipseid'
var constrution2=document.createElement('div')
constrution2.className='barrelipseid2'
var constrution3=document.createElement('span')
constrution3.className='barretxt'
constrution3.appendChild(document.createTextNode('00 %'))
constrution.appendChild(constrution2);
constrution.appendChild(constrution3);
general.appendChild(constrution);
	}
	
for (i = 0; i < preImages.length; i++){
if(preImages[i].complete==true){
valcomplet++
}
}
general.getElementsByTagName("div")[1].style.width=(general.getElementsByTagName("div")[0].offsetWidth/preImages.length)*valcomplet+'px'
general.getElementsByTagName("span")[0].childNodes[0].nodeValue=Math.round((100/general.getElementsByTagName("div")[0].offsetWidth)*((general.getElementsByTagName("div")[0].offsetWidth/preImages.length)*valcomplet))+' %'
if(valcomplet==preImages.length){
general.removeChild(general.getElementsByTagName("div")[0]);
initelipse()
return false
}
setTimeout(precharge,100)
}

function initelipse(){

var general=document.getElementById('genelipse')

for(var i=0;i<=preImages.length-1;i++){
var constrution=document.createElement('img')
if(i==0){
constrution.className='centre';
}
if(i!=0){
constrution.setAttribute('onmouseover','changeelipse(event)');
constrution.className='imlipse';
constrution.setAttribute('onclick','prevoile(event)');
}
general.appendChild(constrution);
}
var all=general.getElementsByTagName("img")
for(var i=0;i<=all.length-1;i++){
var gogo=all[i]
gogo.setAttribute('src',preImages[i].getAttribute("src"));
gogo.onclick=prevoile
if(parseInt(navigator.userAgent.substring(30,31))<=7){
gogo.onmouseover=changeelipse;
}
}

if(parseInt(navigator.userAgent.substring(30,31))<=7){
general.attachEvent('onmouseover',function(){ellipse("depart")})
}
general.onmouseout=anul
general.setAttribute('onmouseover','ellipse("depart")');

all[0].style.left=(general.offsetWidth/2)-(all[0].offsetWidth/2)+'px'
ellipse()
}

function prevoile(e){
var lui=(navigator.appName.substring(0,3)=="Mic") ? event.srcElement : e.currentTarget;
var nomimg=lui.getAttribute("src").lastIndexOf("/")+1;
nomimg=lui.getAttribute("src").substring(nomimg);
voile('images/'+nomimg)
}

 Conclusion

ouep

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

18 septembre 2010 09:54:55 :
ajout d'une demo en ligne
18 septembre 2010 22:20:26 :
modif de la bordure
20 septembre 2010 23:04:00 :
ajout de virgules
12 novembre 2010 11:34:57 :
deboguage ie
11 mars 2011 12:51:24 :
debogage

 Sources du même auteur

Source avec Zip Source avec une capture BOUTON ROTATIF
Source avec Zip Source avec une capture EFFET DE ROTATION A 360° D'IMAGE AVEC ACCELERATION DECELERAT...
Source avec Zip Source avec une capture PETIT LOGICIEL DE DESSIN, RETOUCHE AVEC CANVAS
Source avec Zip Source avec une capture DRAG & DROP VERS UN CANVAS
Source avec Zip Source avec une capture DIAPO EN CSS 3D

 Sources de la même categorie

Source avec Zip JDMATH-MINI.JS : GÉNÉRATION D'EXPRESSION MATHÉMATIQUE par jdmcreator
Source avec une capture SPHERE 3D DÉFORMABLE par phm
Source avec Zip Source avec une capture EFFET DE ROTATION A 360° D'IMAGE AVEC ACCELERATION DECELERAT... par kazma
Source avec Zip Source avec une capture PETIT LOGICIEL DE DESSIN, RETOUCHE AVEC CANVAS par kazma
Source avec Zip Source avec une capture CALCULATRICE HEURE par m22001111

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DIAPORAMA SIMPLE PAR IFRAME par sartoz
Source avec Zip Source avec une capture CENTRAGE D'IMAGE AVEC PETIT EFFET par kazma
Source avec Zip Source avec une capture LIGHTBOX DIAPORAMA par kazma
Source avec Zip Source avec une capture DIAPORAMA PHP / JS par MATHIS49
DIAPORAMA D'IMAGES AVEC LIENS par Deny

Commentaires et avis

Commentaire de jdmcreator le 18/09/2010 21:57:09

Bonjour,

Pour commencer, félicitation pour votre carrousel. S'en est un très bel exemple. Testé sous un vieil IE6, j'ai été étonné de découvrir une navigation moyennement fluide et je n'ai trouvé aucun bug.

Seulement, le problème principal de ce code est surtout du côté de l'ergonomie. Il se prend difficilement en main. Je n'ai testé que la version en ligne, il m'est donc impossible de voir si certains trucs sont configurables. Par exemple, les images qui vont d'un sens à un autre et arrête selon la position de la souris peut devenir rapidement frustrant. Et lorsque l'on clique sur une photo, l'image apparaît, tout simplement. Le fond devrait être un peu plus grisâtre pour que l'on sache que l'on est en mode "plein écran". Aussi, une absence de bouton "Fermer" ou au minimum un "X" est décevant. Même cliquer sur l'image ne la ferme pas. Il faut cliquer sur le cadrage. Que faire si l'image prend toute la page ??? La taille des écrans partout dans le monde n'est jamais la même et ce serait frustrant que quelqu'un reste pris sur la page et soit obligé de recharger la page.

Du côté du code maintenant :

Une programmation orienté objet aurait été plus pratique. Du genre :

var test=new Carrousel({
img:["monimage1.jpg","monimage2.jpg"],
element:document.getElementById('conteneur'),
vitesse:2000
});
Carrousel.start();
Carrousel.stop();

Le code contient  beaucoup de document.getElementById, donc d'ID en brute. J'y tiens comme conclusion qu'il est impossible de mettre deux carrousels sur la même page.

Aussi, je ne comprends pas. Il faut des images "mini" et des images "tailles normales" ? Pourquoi ne pas tout simplement redimensionner les images ?

Il serait aussi formidable de rajouter des options, comme la possibilité de mettre des liens, ou une description.

J'ai été étonné de voir ceci dans ton code:

"
        if(navigator.appName.substring(0,3)!="Mic"){
"
Entre autre, à la ligne 70, 153 et 44 de elipse.js . Pourquoi ne pas tester "document.all" ? En autre, à la ligne 70, il me semble qu'il aurait été plus pratique de faire :

"
var lui=(event.srcElement) ? event.srcElement : e.currentTarget;
"

Autres petits détails :

Ligne 125 de elipse.js : if(i!=0){ aurait été compressable par else{

Ligne 31 de elipse. js : this.rot=this.rot+oml aurait été compressable par this.rot+=oml

Nombreux autres petits détails où il aurait été facile de compresser ne serait-ce que pour ôter quelques petits octets.

Par contre, du côté de voile.js, je ne peux que te féliciter de l'utilisation nombreuse de "with".


Ligne 71 : Cette ligne, je ne comprends pas. Pourquoi ne pas tester directement document.documentElement au lieu de navigator.vendor qui n'est pas supporté par les vieux navigateurs et certains navigateurs alternatif ?

Ligne 81 : Il aurait été bien de rajouter la compatibilité avec l'ancienne forme d'opacité de Firefox, soit -moz-opacity

Ligne 89 : Techniquement, position:fixed ne fonctionne pas avec IE6 ? Vous dites que cela ne fonctionne pas avec IE6 mais à ma connaissance, position:fixed ne fonctionne pas non plus toujours avec IE7.

Finalement, pour toute le code, très nombreuses absences de point-virgules (;). Donc, impossible à compresser.

Donc, en résumé, votre code est excellent ^^ Ne prenez pas les petites notes que j'ai mis comme un échecs mais plutôt comme des recommandations. Je travaille à écrire un tutoriel sur la compression de code en utilisant de petits détails comme je vous ai notés en haut et j'ai choisi votre code pour voir si j'étais capable de moi-même les détecter.

Donc, à retenir de mon évaluation pour le moins complète : Une ergonomie à revoir, une technique d'installation plus simple et la possibilité de mettre des options.

Je préfère ne pas voter pour l'instant, j'attend de voir ce que vous allez répondre car malheureusement, je ne pourrais pas changer ma note.

--------------
Note : 7/10

Commentaire de anacoana le 19/09/2010 14:06:54 9/10

Bonjour, et pour commencer Bravo !
Par rapport à ce qu'à dit jdmcreator, je ne peux mettre qu'un 9/10, mais je reviendrai si mise à jour il y a pour (peut être) mettre la note maximal ;o)

Bravo encore donc pour ce carrousel 3D en JS qui grâce à celui-ci évitera de recourir au Flash, en s'y rapprochant fortement

cdt
Xavier

Commentaire de barthous le 20/09/2010 13:19:17 9/10

Bravo pour ce code.
Très beau résultat.
Je prends.

Commentaire de smarticu le 20/09/2010 15:04:42 9/10

Bonjour,

Bon code bien marrant. Je me suis permit de réécrire pour l'adapter à jquery. Ce qui donne :

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<style type="text/css">

body{
font-family:Verdana, Geneva, sans-serif;
background-color:#9688ab;
}

.genelipse img{
position:absolute;
-moz-border-radius:5px;
-webkit-border-radius:5px;
-khtml-border-radius:5px;
border-radius:5px;
border-style:solid;
border-width:2px;
border-color:gray;
cursor:pointer;
}

.genelipse{
position:relative;
margin:auto;
top:50px;
height:400px;
width:500px;
border-style:solid;
border-width:3px;
border-color:gray;
background-color:#262626;
-moz-border-radius:10px;
-webkit-border-radius:10px;
-khtml-border-radius:10px;
border-radius:10px;
}

.center{
z-index:1;
position:absolute;
height:42%;
top:15%;
}

</style>

<script type="text/javascript">

(function($){
$.fn.extend({
carousel: function(options) {
var self = this;
var oxo;
var defaults = {  
onClickImg : function(event){ return false;},
setX:0
};
              
var options = $.extend(defaults, options);  
var imgCenter;
var rot,cocoef,all,pi2,taillemage;

var ellipse = function(){
if(typeof rot == 'undefined'){
imgCenter.css("left",(self.width()/2)-(imgCenter.width()/2));
rot=0;
cocoef=0.3/1
all=self.find("img");
pi2=(Math.PI*2)/(all.length-1)
taillemage=self.height()/10
}

var oml=((self.offset().left+(self.width()/2))-options.setX)/2000;

oml=oml>0 ? -oml : Math.abs(oml);

if(oml>0.02 || oml<-0.02){
if(rot>=Math.PI*2 || rot<=-(Math.PI*2)){
rot=0;
}

rot+=oml;
var rayon=(self.width()/2)-(taillemage/2)-25;
var t=self.height()/2;

for(var i=1;i<all.length;i++){
var gogo=$(all[i]);
var decal=rot+pi2*i
gogo.css("left",(Math.cos(decal)*rayon)+rayon+15);
gogo.css("top",((Math.sin(decal)*rayon)*cocoef)+t);
gogo.css("width",taillemage*(Math.sin(decal))+taillemage);

var opasi=Math.sin(decal)+1;
gogo.fadeTo(5, opasi);

if(Math.cos(decal)*rayon>40 || Math.cos(decal)*rayon>(-40)){
self.css("zIndex",1);
}else{
self.css("zIndex",0);
}
}
}
if(arguments[0]=='start'){
oxo=setInterval(ellipse,50)
}
};

//Iterate over the current set of matched elements
     return this.each(function() {
var obj = $(this);
obj.addClass("genelipse");

$(document).mousemove(function(e){
options.setX = e.clientX + $(document).scrollLeft();
});

obj.bind("mouseover",function(){
ellipse("start");
});

obj.bind("mouseout",function(){
clearInterval(oxo)
});

imgCenter = $("<img class='center' src='"+options.datas[0]+"'>").appendTo(obj);

for(var i=0;i<options.datas.length;i++){
$("<img src='"+options.datas[i]+"'>")
.bind("click",function(event){
var taille=$(this).width()/$(this).height();
imgCenter.attr("src",$(this).attr("src"));
imgCenter.css("left",(self.width()/2)-((taille*imgCenter.height())/2));
options.onClickImg(event);
})
.bind("mouseover",function(event){
var taille=$(this).width()/$(this).height();
imgCenter.attr("src",$(this).attr("src"));
imgCenter.css("left",(self.width()/2)-((taille*imgCenter.height())/2));
})
.appendTo(obj);
}

ellipse();
});
     }
});
})(jQuery);


$(document).ready(function() {  
$('#demo').carousel(
{datas: [ 'images/ima.jpg','images/ima(2).jpg','images/ima(3).jpg','images/ima(4).jpg','images/ararouge.jpg','images/ima(6).jpg',
'images/ima(7).jpg','images/ima(8).jpg','images/ima(9).jpg','images/ima(1).jpg','images/lion.jpg','images/poisson.jpg',
'images/escar.jpg','images/oiseaux.jpg','images/tigre.jpg','images/mulet.jpg']});
});  

</script>
</head>
<body>

<div id="demo"></div>

</body>

Commentaire de kazma le 20/09/2010 22:34:35 administrateur CS

jdmcreator

je vais essayer de repondre a toute question

concernant  l'ergonomie il n'est pas evident de concevoir quelle que chose qui puisse satisfaire a tous j'ai cree le carouselle en me mettant dans la peau d'un visiteur pour obtenir quelle que chose de pas trop galere a manipuler

concernant les images afficher en grand elle ne couvrira jamais la page entiere j'ai fait en sorte d'avoir un ratio que j'ai mis a 80 % de la taille de l'ecran valable pour toutes les resolutions

le clic pour supprimer l'affichage de l'image j'ai hesiter a le mettre sur l'image j'avait deux il me falait trancher

pour la position ou le carouselle s'arrete on peut diminuer cette position, l'agrandir ou tout simplement la retirer j' ai mis un commentaire a ce sujet dans la source

en gros j'ai pas fait beaucoup de comentaires mais les commentaires que j'ai mis son placé sur les ligne clees afin de modifier la configuration

le code:

j'aurait pus faire un code en objet mais sa demande plus de travaille peut etre qu'un jour je le ferait.

concernait les id il n'y en a que trois dont un seule pour le carouselle celui du div conteneur et donc deux pour le voile un pour le voile lui meme et un pour l'image affiché en grand

pour les grandes image et les mini il est quand meme preferable de mettre des mini pour limiter les temps de chargement.

pour les petit detaille sa reste petit.

if(navigator.appName.substring(0,3)!="Mic") sa me derange pas de l'utiliser c'est plus long c'est sur mais le resultat est le meme

pour navigator.vendor sa me sert a differencier les navigateur webkit (chrome et safari)pour le scroll car sur ces navigateur le scroll est donné avec document.body (le body) alors que pour les autres c'est document.documentElement (le head)

-moz-opacity sa commence a etre vieux

position:fixed marche pour ie7 je crois qu'il existe un bug mais sinon sa marche

pour les virgules en generale je corrige apres.

sinon j'ai remis une souce avec les virgules et quelques detailles




anacoana barthous

merci pour la note



smarticu

j'ai essayer et sa marche j'ai pu voir aussi que tu a rendu dynamique la creation du carouselle bon boulot


Commentaire de lextra le 29/09/2010 14:57:02

lu tout d'abord félicitation il est vraiment réussi
en suite s que tu nous autorise a l'intègre a mon site tout en te fessant de la pub ou pas

Commentaire de webdusud le 29/09/2010 15:43:23

Idem que LEXTRA...
Félicitations donc, et sollicite autorisation de placer du PHP pour générer la liste des images automatiquement à partir du contenu d'un répertoire du serveur (remplissage du tableau tbimage en remplaçant les instructions de début du js. par instructions suivantes)

<script language="javascript">
<?php
include_once("../../php/dir.class.php");

$dir = new MyDirectory("mini");
$dir->open() or die("ERROR - " . $dir->errno() . " : " . "ERROR - " . $dir->errno() . " : " . $dir->error());
$ls = $dir->ls() or die("ERROR - " . $dir->errno() . " : " . $dir->error());
$photos = array("jpg", "jpeg", "gif", "png");
?>
var tbimage=[<? $v = false;
foreach ($ls as $i => $ln) {
  if ($ln['is_file']) {
    // tester si image
    $name = $ln['name'];
    $pos = strrpos($name,".") + 1 ;
    $type = strtolower(substr($name, $pos));
    if (in_array($type, $photos)) {
if ($v) {
echo ",";
}
else {
$v = true;
}
echo "'mini/".$name."'";
    }
  }
} ?>];

</script>

dir.class.php se trouve dans l'homologue PHP de javascriptfr (class MyDirectory)

Commentaire de kazma le 29/09/2010 16:07:55 administrateur CS

bien sure que vous pouvez l'integre sur vos site

Commentaire de lextra le 29/09/2010 17:28:19

un mot merci

Commentaire de adelmonis le 19/10/2010 17:34:10 10/10

Super sympa, c'est ce dont j'avais besoin. Bravo pour ce CAROUSELLE 3D.

Commentaire de FloAvril le 10/12/2010 17:08:23 10/10

Super merci

Commentaire de arta le 25/12/2010 11:40:34

Bonjour kazma

Merci pour le script ;)

Commentaire de infograph61 le 19/01/2011 18:53:03

Bonsoir,
Bravo pour moi c'est un super script.
Juste une question (je n'y connais pas grand grand chose en javascript) comment faire un lien différent vers d'autres pages en cliqnant sur l'image centrale.

encore BRAVO.

Commentaire de FloAvril le 19/01/2011 19:03:28

Je reviens sur mon précédent post...
Il est un peu rapide ce carrousel, non?

Commentaire de smarticu le 19/01/2011 20:42:06

Si tu prends la jquery il faut écrire :
$('#demo').carousel(
{datas: [ 'images/ima.jpg','images/ima(2).jpg','images/ima(3).jpg','images/ima(4).jpg','images/ararouge.jpg','images/ima(6).jpg',
'images/ima(7).jpg','images/ima(8).jpg','images/ima(9).jpg','images/ima(1).jpg','images/lion.jpg','images/poisson.jpg',
'images/escar.jpg','images/oiseaux.jpg','images/tigre.jpg','images/mulet.jpg'],
onClickImg : function(event){
//Mettre son code ici
}
});
});  

Commentaire de kazma le 20/01/2011 16:17:25 administrateur CS

je prend reference au carousel avec le prechargement mais sa reste pareille pour les autres seul le numero de ligne change

"Il est un peu rapide ce carrousel, non? "


pour diminuer la vitesse a la ligne 28 du fichier elipse.js augmente la valeur remplace 2000 par 4000 par exemple

var oml=((gaga.offsetLeft+(gaga.offsetWidth/2))-setX)/4000; // vitesse de rotation




Commentaire de FloAvril le 20/01/2011 16:23:22

Merci KAZMA

Commentaire de alain17610 le 11/03/2011 00:10:32

Merci Kazma pour ce beau travail.
Je viens de mettre en ligne ton carrousel avec de légères modifications pour l'adapter à mon site.
Je vais encore chercher comment placer en bas du carrousel l'image n°1 qui actuellement se trouve à 90° à droite.
Si tu veux voir ce qu'il donne, tu peux aller sur http://spa.de.saintes.free.fr/pages/24h/24h.htm
Encore merci pour ce travail parfait.

Commentaire de alain17610 le 11/03/2011 00:18:29

Je vois qu'il y a seulement 3 étoiles avec mon commentaire alors que je pensais en avoir mis un maximum. Je vais essayer de rattraper cette erreur.

Commentaire de PCPT le 13/03/2011 09:39:37 administrateur CS

alain17610 -> tu peux re-noter

Commentaire de alain17610 le 14/03/2011 11:55:22 10/10

Voici la note que je souhaitais attribuer à Kazma pour son merveilleux travail.

Commentaire de kazma le 14/03/2011 13:30:23 administrateur CS

merci

Commentaire de amelamelamelamelamelamel le 28/12/2011 17:20:30

LA CAROUSELLE ROULE TRES VITE COMMENT JE PEUT LE MODIFIER SQVP

Commentaire de FloAvril le 28/12/2011 17:31:46

Amelamemelamelamelamel >point27>vitesse de rotation

Commentaire de amelamelamelamelamelamel le 29/12/2011 11:00:35

dans le code ou je peut modifier la vitesse  de rotation SVP

Commentaire de amelamelamelamelamelamel le 29/12/2011 11:13:14

oml=oml>0 ? -oml : Math.abs(oml)
if(oml>0.02 || oml<-0.02){

if(this.rot>=Math.PI*2 || this.rot<=-(Math.PI*2)){
this.rot=1
}

this.rot=this.rot+oml
var rayon=(gaga.offsetWidth/2)-(this.taillemage/2)-50
var t=gaga.offsetHeight/2

for(var i=1;i<=this.all.length-1;i++){
var gogo=this.all[i]
var decal=this.rot+this.pi2*i
gogo.style.left=(Math.cos(decal)*rayon)+rayon+15+"px";
gogo.style.top=((Math.sin(decal)*rayon)*this.cocoef)+t+"px";
gogo.style.width=this.taillemage*(Math.sin(decal))+this.taillemage+"px";

var opasi=Math.sin(decal)+1

if(navigator.appName.substring(0,3)!="Mic"){
gogo.style.opacity=opasi;
}
else{
gogo.style.filter="alpha(opacity="+opasi*100+")"
}
if(Math.cos(decal)*rayon>40 || Math.cos(decal)*rayon>(-40)){
gogo.style.zIndex=1
}
else{
gogo.style.zIndex=0
}
}
}
if(arguments[0]=='depart'){
oxo=setInterval(ellipse,1000)
}
}

function anul(){
clearInterval(oxo)
}

function change(lui){
var gaga=document.getElementById('genelipse')
var el=document.getElementById('centre')
var taille=lui.offsetWidth/lui.offsetHeight
el.src=lui.src
//el.style.left=(gaga.offsetWidth/2)-((taille*el.offsetHeight)/2)+'px'

}


j'ai pas compris cette partis du est ce que vvous pouvez m'aidiez SVP

Commentaire de kazma le 30/12/2011 12:25:40 administrateur CS

sur la ligne 12 j'ai rajouté une variable qui est dalleur commenté (// vitesse de rotation) augmente la valeur ca diminuera la vitesse

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

script de telechargement d'image ? [ par benoitquintard ] je cherche un script qui puisse faire ceci :quand je passe la sourie sur un lien de photo, je ve que une fenetre de telechargement s'ouvre, et me dema !!! Défi !!! recherche diaporama [ par tamtamdesign ] Bonjour,je suis nouvelle venue sur ce site (tr&#232;s int&#233;ressant).Voil&#224;, je recherche un script pour mes pages album photos.Mais comme j'ai nombre d'image pour diaporama [ par bosto ] Bonjour,Je suis super d&#233;butant et surtout graphiste pas technicien. Ma question est peut etre tres simple mais je ne trouve pas de reponse sur le Problème avec les caractères spéciaux ! [ par Ruffneck2045 ] Bonjour, j'ai cr&#233;er un diaporama &#224; l'aide&nbsp;de php &amp; javascript et j'ai un petit probl&#232;me.En cliquant sur une image du diaporama phototeque [ par guycnoel ] bonjour voici une page&nbsp;avec un code hyper simplifi&#233; qui affiche des petites photos (thumbs). quand on clique sur une de ces photos, une fen& appel de fct javascript [ par ksaillard ] je souhaite faire un diaporama dans ma page html je fais appel à une focntion javacript qui est dans 'ejs_visionneuse_image.js' : exec_vignette(chemi Chargement et redimentionnement image [ par maxinfos ] Bonjour, je suis actuellement en train de faire une page web dans laquelle je met des photos de petites tailles et que lorsque l'on clique dessus, ouv Redimention image [ par maxinfos ] Bonjour, voil&#224;, j'ai un petit soucis sur le redimentionnement d'une image en fonction de la r&#233;solution de l'&#233;cran.En fait, mon script f Découpage d'une image [ par ecoll_manu ] bonjour &#224; tousvoil&#224; ce n'est pas ais&#233; ce que je souhaite faire, mais je ne vois pas d'autre solution pour le faire.Je vous explique ce ne sais pas par où commencer! [ par unpeuperdu ] bonjour &#224; tous, j'ai un probl&#232;me que j'imagine de d&#233;butant mais je ne sais pas par o&#249; commencer pour le r&#233;gler. c'est, je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,243 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales