IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Utilisation d'un meme code javascript plusieurs fois sur une page


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Points : 27
    Points
    27
    Par défaut Utilisation d'un meme code javascript plusieurs fois sur une page
    Bonjour,

    J'ai un petit soucis d'implémentation d'une scrollbar faîtes en js.

    Pour faire simple, je suis dans une page html qui contient 3 div cachés qui apparaissent avec un sous menu. Le scroll doit intervenir sur ces div là, sauf que j'arrive a la faire apparaitre seulement sur l'1 des 3.

    Voici le petit bout de code dans le header y faisant appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll1").scrollbar();
    	});
    </script>
    Je pensais pouvoir faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll1").scrollbar();
                    $("#textescroll2").scrollbar();
                    $("#textescroll3").scrollbar();
    	});
    </script>
    ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll1").scrollbar();
    	});
    </script>
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll2").scrollbar();
    	});
    </script>
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll3").scrollbar();
    	});
    </script>
    mais c'est sans succès. Si quelqu'un avait une idée de comment je pourrai faire ça...

    J'ai préparé une archive avec la page html et le js ICI

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Points : 344
    Points
    344
    Par défaut
    Essaye ceci :

    fichier expertise.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    $(document).ready(function(){
    		$("#textescroll1").scrollbar();
    		$("#textescroll2").scrollbar();
    		$("#textescroll3").scrollbar();
    	});
    </script>
    et

    fichier plugin.scrollbar.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    (function($){	
    	$.fn.scrollbar = function(params) {
    		// Fusionner les paramètres par défaut et ceux de l'utilisateur
    		params = $.extend( {
    			taille_englobe: '320',			//Taille de l'espace visible - /!\ Doit être un nombre ou 'auto'
    			taille_scrollbar: "auto",		//Taille de la scrollbar - /!\ Doit être un nombre ou 'auto'
    			taille_bouton: 50,				//Taille du bouton - /!\ Doit être un nombre
    			pas:75,							//Pas du scroll molette - /!\ Doit être un nombre ou 'auto'
    			molette: true,					//Détection du scroll molette - /!\ true ou false
    			drag: true,						//Bouton de la scrollbar déplacable à la souris - /!\ true ou false
    			debug: false,					//Afficher la console de debug - /!\ true ou false
    			style: 'basic',					//Choix des styles - /!\ Par défault, il n'y a que le style 'basic'
    			position:'gauche',				//Position de la scrollBar - /!\ 'gauche' ou 'droite'
    			alignement_scrollbar:'haut',	//Alignement de la scrollBar. Utilisé uniquement si elle à une taille inférieur à celle de taille_englobe
    			orientation: 'vertical',		//Orientation du contenu, 'vertical' ou 'horizontal'
    			marge_scroll_contenu: 25,		//Marge entre la scrollBar et le contenu - /!\ Doit être un nombre
    			largeur_scrollbar:3,
    			largeur_cacheScrollbar:2,
    			largeur_btnScrollbar:5
    		}, params);
     
    		return this.each(function() {
    			var $$ = $(this);
    			var taille_englobe_init = params.taille_englobe;
    			var taille_scrollbar_init = params.taille_scrollbar;
     
    			//Fonction de calcul de position top maximum du contenu
    			function calcul_contenu_top_max(){
    				return  params.taille_englobe - taille_contenu ;
    			}
     
    			//Fonction de calcul de position top maximum du bouton
    			function calcul_bouton_top_max(){
    				return params.taille_scrollbar - params.taille_bouton
    			}
     
    			//Fonction de calcul du déplacement du bouton
    			function deplacement_bouton(info_top_contenu){
    				//On calcul la nouvelle position du bouton
    				var depl_bouton = (info_top_contenu/calcul_contenu_top_max())*(calcul_bouton_top_max());
    				//On vérifie que ca déborde pas en haut
    				if(depl_bouton < 0){depl_bouton = 0;}
    				//On vérifie que ca déborde pas en bas
    				if(depl_bouton > calcul_bouton_top_max()){depl_bouton = calcul_bouton_top_max();}
    				$$.children("#scrollbar:visible").children('#cache:visible').children('#bouton').css({'top':depl_bouton+"px"});
    			}
     
    			function deplacement_contenu(info_top_bouton){
    				//On calcul la nouvelle position du contenu
    				var depl_contenu = (info_top_bouton/calcul_bouton_top_max())*(calcul_contenu_top_max());
    				//On vérifie que ca déborde pas en haut
    				if (depl_contenu > 0){depl_contenu = 0}
    				//On vérifie que ca déborde pas en bas
    				if (depl_contenu < calcul_contenu_top_max()){depl_contenu = calcul_contenu_top_max()}
    				$$.children('#englobe').css({'top':depl_contenu+"px"});
    			}
     
    			function styler_scrollbar(position,orientation){
    				var type_marge_position;
    				var marge_position;
    				var marge_orientation;
    				switch (position){
    					case 'droite':
    						$$.children('#englobe:visible').after('<div id="scrollbar"><div id="cache"><div id="bouton">&nbsp;</div></div></div>');
    						$$.children('#scrollbar:visible').css({'margin-left':params.marge_scroll_contenu+'px'});
    						$$.children('#cache:visible').css({'margin-left':params.marge_scroll_contenu+'px'});
    					break;
    					case 'gauche':
    						$$.children('#englobe:visible').before('<div id="scrollbar"><div id="cache"><div id="bouton">&nbsp;</div></div></div>');
    						$$.children('#scrollbar:visible').css({'margin-right':params.marge_scroll_contenu+'px'});
    						$$.children('#cache:visible').css({'margin-right':params.marge_scroll_contenu+'px'});
    					break;
    				}
    				switch (orientation){
    					case 'haut':
    						$$.children('#scrollbar:visible').css({'margin-top':'0px'});
    						$$.children('#cache:visible').css({'margin-top':'0px'});
    					break;
    					case 'centre':
    						var marge = (params.taille_englobe -params.taille_scrollbar)/2;
    						$$.children('#scrollbar:visible').css({'margin-top':marge+'px'});
    						$$.children('#cache:visible').css({'margin-top':marge+'px'});
    					break;
    					case 'bas':
    						var marge = params.taille_englobe -params.taille_scrollbar;
    						$$.children('#scrollbar:visible').css({'margin-top':marge+'px'});
    						$$.children('#cache:visible').css({'margin-top':marge+'px'});
    					break;
    				}
    			}
    			var padTop=0;
    			var padBot=0;
    			//Hauteur du contenu
                var taille_contenu = $$.height()+320;
     
    			function calcul_hauteur_auto(){
    				if(params.taille_englobe == "auto"){
    					padTop = $('#contenu').css('padding-top');
    					padTop = padTop.substring(0,padTop.length-2);
     
    					padBot = $('#contenu').css('padding-bottom');
    					padBot = padBot.substring(0,padBot.length-2);
     
    					params.taille_englobe = $(window).height()-320-padBot-padTop;
     
    				}else{return false}
    			}
    			calcul_hauteur_auto();
    			//La hauteur de l'espace visible est la hauteur de la fenetre du navigateur si taille_englobe="auto"
     
     
    			function controle_donnee(){
    				calcul_hauteur_auto();
    				//La taille du contenu doit être supérieur à celle de l'espace visible (taille_englobe)
    				if(taille_contenu > params.taille_englobe){
    					//La hauteur de la scroll bar est égale à la hauteur de "englobe" si hauteur_srollbar="auto"
    					if(params.taille_scrollbar == "auto"){params.taille_scrollbar = params.taille_englobe;}
    					//La taille de la scrollbar doit être inférieur ou égale à la taille de taille_englobe
    					if(params.taille_scrollbar > params.taille_englobe){						
    						params.taille_scrollbar = params.taille_englobe;	
    					}
    					return true;
    				}else{return false;}		
    			}
     
    			//Si la hauteur du contenu est supérieur à la hauteur de l'espace visible
    			if(controle_donnee()){
    				//Au redimensionnement de la fenetre
    				//N'est concerné par cette fonction que les éléments en 'auto'
    				window.onresize = function() {
    					if(taille_englobe_init == "auto"){
    						params.taille_englobe = $(window).height()-320-padBot-padTop;
    						$$.css({'height':params.taille_englobe+'px'});
    						if(taille_scrollbar_init == "auto"){
    							params.taille_scrollbar = params.taille_englobe;
    							$$.children('#scrollbar:visible').css({'height':params.taille_scrollbar+'px'});
    							$$.children('#cache:visible').css({'height':params.taille_scrollbar+'px'});
    							deplacement_bouton($$.children("#englobe:visible").css('top').substring(0,$$.children("#englobe:visible").css('top').length-2));
    						}
    					}	
    				};
     
    				//calcul des largeurs
    				var temp = $$.width();
    				$$.css({'width':params.marge_scroll_contenu+params.largeur_scrollbar+temp+'px'});
    				//On construit une div autour du contenu, mais à l'intérieur de la div
    				$$.wrapInner('<div id="englobe"></div>');
    				$$.css({'height':params.taille_englobe+'px','overflow':'hidden','position':'relative'});
    				$$.children("#englobe:visible").css({'top':0+'px','float':'left','position':'relative','width':temp+'px'});	
     
    				//On construit la scrollBar
    				styler_scrollbar(params.position,params.alignement_scrollbar);
     
    				$$.append('<div class="clear"></div>');
    				$$.children(".clear").css({'clear':'both'});
     
     
    				switch (params.style) {
    					case 'basic':
    						//Style de la scrollBar
    						$$.children("#scrollbar:visible").css({'width':params.largeur_scrollbar+'px',
    											'float':'left',
    											'height':params.taille_scrollbar+'px',
    											'background':'#000',
    											});
     
    						//Style du cache de la scrollBar
    						$$.children("#scrollbar:visible").children('#cache:visible').css({'width':params.largeur_cacheScrollbar+'px',
    											'float':'left',
    											'height':params.taille_scrollbar+'px',
    											'background':'#fff',
    											});
     
    						//Style du bouton de la scrollBar
    						$$.children("#scrollbar:visible").children('#cache:visible').children("#bouton:visible").css({'width':params.largeur_btnScrollbar+'px',
    										'height':params.taille_bouton+'px',
    										'background':'#9c9d9f',
    										'top':0+'px',
    										'cursor':'pointer',
    										});
    					break;
    				}
     
     
     
    				//Si le drag du bouton est activé(true)
    				if(params.drag){
    					$$.children("#scrollbar:visible").children('#cache:visible').children("#bouton:visible").draggable({ 
    						containment: 'parent',
    						axis: 'y',
    						start:function(){},
    						drag: function(event, ui) {
    							//ui.position.top est la valeur renvoyé par le plugin JQuery UI
    							deplacement_contenu(ui.position.top);
    						},
    						stop: function(){}
    					});
    				}
     
    				if(params.molette){
    					$$.mousewheel(function(event, delta) {
    						//On récupère la position du contenu
    						var top_contenu = $$.children('#englobe:visible').css('top');
     
    						//On enlève le 'px' et on le convertit en entier pour pouvoir le manipuler
    						top_contenu = parseInt( top_contenu.substring(0,(top_contenu.length-2)) );
     
    						//On récupère la position du bouton
    						var top_bouton = $$.children("#scrollbar:visible").children('#cache:visible').children('#bouton:visible').css('top');
    						//On enlève le 'px' et on le convertit en entier pour pouvoir le manipuler
    						top_bouton = parseInt( top_bouton.substring(0,(top_bouton.length-2)) );
     
    						//Si le delta est positif, c'est à dire que l'on "pousse" la molette
    						if (delta > 0) {							
    							top_contenu = top_contenu + params.pas;
    							//On vérifie que l'on n'a pas atteint le haut du contenu
    							if(top_contenu > 0){top_contenu = 0}
    							$$.children('#englobe:visible').css({'top':top_contenu+"px"});
    						//Si le delta est négatif, c'est à dire que l'on "ramène" la molette
    						}else if (delta < 0){							
    							top_contenu = top_contenu - params.pas;
    							//On vérifie que l'on n'a pas atteint le bas du contenu
    							if(top_contenu < calcul_contenu_top_max()){top_contenu = calcul_contenu_top_max()}
    							$$.children('#englobe:visible').css({'top':top_contenu+"px"});							
    						}
     
    						//calcul de déplacement du bouton					
    						deplacement_bouton(top_contenu);	
    					});
    				}
     
    				//Affiche la console de debug
    			}else{
    				alert('Pas de scrollbar');
    			}
            });
    	}
    })(jQuery);
    Sébastien Courjean
    Développeur Web
    scourjean@cyres.fr
    http://www.cyres.fr/

  3. #3
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    scourjean
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2007
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par llaffont Voir le message
    scourjean
    Je ne vois pas quoi rajouter de plus,

    Un grand merci, je vais comparer les 2 fichiers pour voir les modifications que tu as apporté.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2013, 14h17
  2. Utiliser plusieurs menus sur une page
    Par oguillin dans le forum jQuery
    Réponses: 2
    Dernier message: 08/11/2010, 15h13
  3. fonction javascript et onsubmit sur une page
    Par gpsevasion dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/07/2008, 15h39
  4. [Displaytag] trier plusieurs tableaux sur une page
    Par Kieda dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 03/06/2008, 12h07
  5. [XI] obtenir plusieurs colonnes sur une page
    Par Aurazed dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 12/06/2007, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo