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

JavaScript Discussion :

Faire un dégradé de couleur avec du texte


Sujet :

JavaScript

  1. #21
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Donc :

    1. je ne vois pas la fonction degrade() dans ton script index.html ...
    2. là ça va tout envoyer ... et ce que tu veux c'est juste le contenu de la font#P7_Couleur7 ....


    donc tu laisse comme c'était, et tu fais le traitement ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      new Ajax.Request(url, {
        onComplete: function(xhr) {
    	  $('content').innerHTML = xhr.responseText;
              $('P7_Couleur7').innerHTML = degrade(0,127,0,255,0,0,$('P7_Couleur7').innerHTML,0);
     
        }
      });
    et là ça devrait marcher ... si tu veux faire en sorte que toutes les span dont la class est Degrade passent en dégradées lors de leur injection dans la page, tu peux faire ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      new Ajax.Request(url, {
        onComplete: function(xhr) {
    	  $('content').innerHTML = xhr.responseText;
              var listADegrader = $$('#content .Degrade');
              for(i=0; i< listADegrader.length ; i++){
                  listADegrader[i].innerHTML = degrade(0,127,0,255,0,0,listADegrader[i].innerHTML,0);
        }
      });
    et normalement ça devrait fonctionner ^^ ...

  2. #22
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Réponse à Nours312
    Bonjour,

    Oui effectivement, j'avais oublié de rajouté la fonction degrade(). Voici le code que j'obtiens maintenant pour index.html (partie javascript) :
    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
    <script type="text/javascript">
    function construct()
    {
    	var tableLiens = $$('.title_back a.liaison');// vas cr?er un tableau avec toutes les balises <a> ayant comme classe "menu"  
    	for(j=0; j<tableLiens.length; j++){ 
        var lien = tableLiens[j].readAttribute('href');
        lien = lien.substring(lien.lastIndexOf('/')+1);// r?cup?ration du lien symbolique
        tableLiens[j].removeAttribute('href');
        if(lien == "index.html")
          lien = "main.html"; // rappelons que nous ne pouvons charger notre page index.html car elle contient notre template !!
        tableLiens[j].writeAttribute('href_bis', lien); // cet attribut sera utilis? par la suite et remplace le href.
        tableLiens[j].observe('click', charger); // on place notre ?couteur sur l'?l?ment, ? chaque click, il appellera la fonction <u>charger()</u>
      }
    }
     
    function charger(e){ // e repr?sente l'?v?nement li? ? l'appel de cette fonction
      var el = e.element(); // l'?l?ment sur lequel nous avons click? !
      var url = el.readAttribute('href_bis');
      new Ajax.Request(url, {
        onComplete: function(xhr) {
    	 $('content').innerHTML = xhr.responseText;
              $('P7_Couleur7').innerHTML = degrade(128,0,0,255,128,64,$('P7_Couleur7').innerHTML,0);
     
        }
      });
     
    } 
     
    document.observe('dom:loaded', construct); 
     
    // fonction de conversion en hexadécimal
    var hexa = "0123465789ABCDEF";
     
    function convert_hexa(nb) {
    	return hexa.charAt(Math.floor(nb/16)) + hexa.charAt(nb%16);
    }
     
    // r1,g1,b1 représentent les couleurs de départ (en RGB)
    // r2,g2,b2 représentent les couleurs de fin (en RGB)
    // texte représente la chaîne à afficher
    // size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
    // (si < taille du texte, on prend cette dernière)
     
    function degrade(r1,g1,b1,r2,g2,b2,texte,size) {
    	var nb = texte.length;
    	var s = nb;
    	var dt = 1;
    	if ( size > s ) {
    		dt = Math.round( ( size - 2 ) / ( nb - 1 ) );
    		s = dt * ( nb - 1 );
    	}
    	dr = ( r2 - r1 ) / s;
    	dg = ( g2 - g1 ) / s;
    	db = ( b2 - b1 ) / s;
    	for ( var i = 0; i <= s; i++ ) {
    		var t = "&nbsp;";
    		var index = i / dt;
    		if ( index == Math.round(index) ) {
    			t = texte.charAt(index);
    		}
    		// Ecriture de chaque lettre, une par une avec sa propre couleur
    		document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
    	}
    }
     
    function AfficheMaxi(a)
    {
    	document.getElementById('ZonePrMaxi').src = 'image/NotreRencontre/'+a;
    }
    </script>
    Mon problème c'est que ça m'affiche bien la phrase que je souhaite en dégradé mais ça affiche juste cette phrase et dans un fond blanc!! (voir document ci-joint).

    Cordialement
    loicDu28
    Images attachées Images attachées  

  3. #23
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonsoir tout le monde,

    Mon problème est résolu, cela grâce à nours312 qui m'a beaucoup aidé par message privé, je t'en remercie énormément et je souhaite remercier également tout ceux qui m'ont aidé à essayer de résoudre ce problème.

    Voici le code pour ceux que ça intéresse :
    1) Index.html :
    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
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    		<title>Metamorphosis Design Free Css Templates</title>
    		<meta name="keywords" content="" />
    		<meta name="description" content="" />
    		<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
    		<script src="http://4code.fr/prototype.js" type="text/javascript"></script>
    		<script type="text/javascript">
    			function construct()
    			{
    				$$('.title_back a.liaison').invoke('observe', 'click', charger);
    			}
     
    			function charger(e){ // e repr?sente l'?v?nement li? ? l'appel de cette fonction
    				e.stop();
    				var url = e.element().readAttribute('href');
    				var lien = url.substring(url.lastIndexOf('/'));
    				if(lien == "index.html" || "")
    					lien = "main.html"; // rappelons que nous ne pouvons charger notre page index.html car elle contient notre template !!
    				new Ajax.Request(lien, {
    					onComplete: function(xhr) {
    						 $('middle_back').innerHTML = xhr.responseText;
    						//  $('content').innerHTML = degrade(0,127,0,255,0,0,xhr.responseText,0);
    						//$('poemeEmplacement').innerHTML = xhr.responseText;
    						$('P7_Couleur7').innerHTML = degrade(128,0,0,255,128,64,$('P7_Couleur7').innerHTML,0);
     
    					}
    				});
     
    			}
     
    			document.observe('dom:loaded', construct);
     
    			// fonction de conversion en hexad�cimal
    			var hexa = "0123465789ABCDEF";
     
    			function convert_hexa(nb) {
    				return hexa.charAt(Math.floor(nb/16)) + hexa.charAt(nb%16);
    			}
     
    			// r1,g1,b1 repr�sentent les couleurs de d�part (en RGB)
    			// r2,g2,b2 repr�sentent les couleurs de fin (en RGB)
    			// texte repr�sente la cha�ne � afficher
    			// size est la taille du d�grad� (nombre de lettres au final (avec ajouts d'espace si n�cessaire))
    			// (si < taille du texte, on prend cette derni�re)
     
    			function degrade(r1,g1,b1,r2,g2,b2,texte,size) {
    				var nb = texte.length;
    				var s = nb;
    				var dt = 1;
    				var back ="";
    				if ( size > s ) {
    					dt = Math.round( ( size - 2 ) / ( nb - 1 ) );
    					s = dt * ( nb - 1 );
    				}
    				dr = ( r2 - r1 ) / s;
    				dg = ( g2 - g1 ) / s;
    				db = ( b2 - b1 ) / s;
    				for ( var i = 0; i <= s; i++ ) {
    					var t = "&nbsp;";
    					var index = i / dt;
    					if ( index == Math.round(index) ) {
    						t = texte.charAt(index);
    					}
    					// Ecriture de chaque lettre, une par une avec sa propre couleur
    					back += '<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>';
    				}
    				return back;
    			}
     
    			function AfficheMaxi(a)
    			{
    				$('ZonePrMaxi').src = 'image/NotreRencontre/'+a;
    			}
    		</script>
    	</head>
    	<body>
    		<div id="content">
    			<!-- header begins -->
    			<div id="poemeEmplacement"></div>
     
    			<!-- header ends -->
    			<!-- content begins -->
    			<div id="main">
    				<div id="right">
    					<div id="header">
    						<div id="logo">
    							<h1><a href="#">metamorph_featherstorm</a></h1>
    							<h2><a href="http://www.metamorphozis.com/" id="metamorph">Design by Metamorphosis Design</a></h2>
    						</div>
    						<div id="menu">
    							<div class="title_back">
    								<ul>
    									<li><a href="index.html"  class="liaison">Accueil</a></li>
    									<li><a href="#" title="">Blog</a></li>
    									<li><a href="#" title="">Gallery</a></li>
    									<li><a href="#" title="">About</a></li>
    									<li><a href="#" title="">Contact</a></li>
    								</ul>
    							</div>
    						</div>
    					</div>
    					<div class="box">
    						<div id="middle_back">
     
    							<br />
    							<center>
    								<table>
    									<tr>
    										<td>
    											<p>
    							Toi et moi <br>
    							c'est un amour �ternel
    											</p>
    										</td>
    										<td>
    											<img src="image/nous.jpg">
    										</td>
    										<td>
    											&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
    											<p>
    							Toi et moi <br>c'est pour la vie je l'esp�re.
    											</p>
    										</td>
    									</tr>
    								</table>
    							</center>
    						</div>
    					</div>
     
    				</div>
    				<div id="left">
    					<div id="top"></div>
    					<div id="left_back">
    						<h3>Nunc pellentesque</h3>
    						<div class="title_back">
    							<ul>
    								<li><ul>
    										<li><a href="notre_rencontre.html" class="liaison">Notre rencontre</a></li>
    										<li><a href="p1.html" class="liaison">Les po�mes</a></li>
    										<li><a href="#">Purus in mollis purus</a></li>
    										<li><a href="#">Orci nonummy fringilla</a></li>
    									</ul>
    								</li>
    							</ul>
    						</div>
    					</div>
    					<br />
    					<h3>Calendar</h3>
    					<div class="title_back">
    						<ul>
    							<li id="calendar">
    								<div id="calendar1">
    									<table id="calendar2" summary="Calendar">
    										<caption>
    						January 2008
    										</caption>
    										<thead>
    											<tr>
    												<th abbr="Monday" scope="col" title="Monday">M</th>
    												<th abbr="Tuesday" scope="col" title="Tuesday">T</th>
    												<th abbr="Wednesday" scope="col" title="Wednesday">W</th>
    												<th abbr="Thursday" scope="col" title="Thursday">T</th>
    												<th abbr="Friday" scope="col" title="Friday">F</th>
    												<th abbr="Saturday" scope="col" title="Saturday">S</th>
    												<th abbr="Sunday" scope="col" title="Sunday">S</th>
    											</tr>
    										</thead>
    										<tfoot>
    											<tr>
    												<td abbr="Des" colspan="3" id="prev"><a href="#">&laquo; Des</a></td>
    												<td class="pad">&nbsp;</td>
    												<td abbr="Feb" colspan="3" id="next" class="pad"><a href="#">Feb &raquo;</a></td>
    											</tr>
    										</tfoot>
    										<tbody>
    											<tr>
    												<td colspan="2" class="pad">&nbsp;</td>
    												<td>1</td>
    												<td>2</td>
    												<td>3</td>
    												<td>4</td>
    												<td>5</td>
    											</tr>
    											<tr>
    												<td>6</td>
    												<td>7</td>
    												<td>8</td>
    												<td>9</td>
    												<td>10</td>
    												<td>11</td>
    												<td>12</td>
    											</tr>
    											<tr>
    												<td>13</td>
    												<td>14</td>
    												<td>15</td>
    												<td>16</td>
    												<td>17</td>
    												<td>18</td>
    												<td>19</td>
    											</tr>
    											<tr>
    												<td>20</td>
    												<td id="now">21</td>
    												<td>22</td>
    												<td>23</td>
    												<td>24</td>
    												<td>25</td>
    												<td>26</td>
    											</tr>
    											<tr>
    												<td>27</td>
    												<td>28</td>
    												<td>29</td>
    												<td>30</td>
    												<td>31</td>
    												<td class="pad" colspan="2">&nbsp;</td>
    											</tr>
    										</tbody>
    									</table>
    								</div>
    							</li>
    						</ul></div>
    					<br />
    					<h3>Company News</h3>
    					<div class="title_back">
    						<ul>
    							<li>
    								<h4>June 2, 2008</h4>
    								<p><a href="#"> Duis tempor posuere diam. Suspendisse vel tellus quis nunc malesuada porta. …</a></p></li>
    							<li>
    								<h4>June 12, 2008</h4>
    								<p><a href="#">Tempus Duis tempor posuere diam. Suspendisse  quis nunc malesuada porta. …</a></p></li>
    						</ul>
    					</div>
    				</div>
    				<div id="bottom"></div>
    			</div>
    			<!--content ends -->
    			<!--footer begins -->
    			<div style="clear: both"></div>
    		</div>
    		<div id="footer">
    			<p>Copyright &copy; 2009. <a href="#">Privacy Policy</a> | <a href="#">Terms of Use</a> | <a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional"><abbr title="eXtensible HyperText Markup Language">XHTML</abbr></a> | <a href="http://jigsaw.w3.org/css-validator/check/referer" title="This page validates as CSS"><abbr title="Cascading Style Sheets">CSS</abbr></a></p>
    			<p>Design by <a href="http://www.metamorphozis.com/" title="Flash Web Templates">Flash Web Templates</a></p>
    		</div>
     
    		<!-- footer ends-->
    		<div style="text-align: center; font-size: 0.75em;">Design downloaded from <a href="http://www.freewebtemplates.com/">free website templates</a>.</div></body>
    </html>
    2) Page du poème :
    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
    <br> 
    <div id="poeme_align">  
    	<div id="titre">Demande en fian&ccedil;ailles</div>  
    	<br>  
    	<font id="P7_Couleur1">
    		Mon amour, ma princesse, 
    		<br>  Avant tout j'aimerais que tu sache 
    		<br>  Qu'a mes yeux tu repr&eacute;sente tout 
    		<br>  Ce dont j'ai toujours r&eacute;v&eacute; 
    		<br>  L'amour fou, la tendresse, la douceur ....
    	</font> 
    	<br>  <br>  
    	<font id="P7_Couleur2">
    		Quand tu es loin de moi 
    		<br>  Je me sens si seul, 
    		<br>  Quand on se dispute, 
    		<br>  Ca me fais si mal 
    		<br>  Car je suis fous d'amour pour toi.
    	</font>  
    	<br>  <br>  
    	<font class="P7_Couleur3">
    		En ce jour, si merveilleu pour notre relation 
    		<br>  J'ai un cadeau si sp&eacute;cial 
    		<br>  Qui pour moi signifie tout l'amour que j'ai pour toi
    	</font>  
    	<br>  
    	<font class="P7_Couleur4">
    		--> Donne le cadeau
    	</font>  
    	<br>  
    	<font class="P7_Couleur3">
    		En t'offrant ce cadeau 
    		<br>  Je veux simplement te dire JE T'AIME!!
    	</font>  
    	<br>  
    	<font class="P7_Couleur4">
    		--> Tu peux ouvrir le cadeau
    	</font>  
    	<br>  <br>  
    	<font id="P7_Couleur5">
    		Ce cadeau, cette bague 
    		<br>  Repr&eacute;sente la fid&eacute;lit&eacute;, l'amour, la douceur. 
    		<br>  Si tu le souhaite, elle peut aussi 
    		<br>  Devenir une bague de fiancaille.
    	</font> 
    	<br>  <br>  
    	<font id="P7_Couleur6">
    		Bien entendu, fian&ccedil;aille pour moi ne veux pas dire mariage en vu 
    		<br>  Pour cela on verra beaucoup plus tard. 
    		<br>  C'est juste une marque d'amour!!
    	</font>  
    	<br>  <br>  
    	<font id="P7_Couleur7">
    		JE T'AIME PLUS QUE TOUT AU MONDE 
    	</font>  
    	<br>  <br>  
    	<img src="image/LesPoemes/1990418899_small_1.jpg" /> 
    </div>
    Merci à tous pour tout!!
    loic20h28

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [XL-2010] Faire un tableau dynamique croisé avec du texte
    Par PaulG2B dans le forum Excel
    Réponses: 5
    Dernier message: 17/04/2014, 16h32
  2. Comment faire un dégradé de couleur en background d'une layout
    Par maxwel56 dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 23/05/2011, 16h26
  3. Dégradé de couleurs avec texte
    Par Hobbi1 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 21/06/2009, 18h52
  4. Réponses: 2
    Dernier message: 28/05/2009, 09h48
  5. [debutant]faire apparaitre une zone avec du texte
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2007, 08h16

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