J'utilise Ceci est utilisé pour changer la couleur d'arrière-plan chaque fois qu'une touche alpha minuscule est enfoncée. P>
Je veux modifier ce code pour être ensemencé par le code-clés.
Comment puis-je faire cela? P>
J'ai essayé '#' + math.floor (math.random () * 16777215) .Tostring (16); code> pour générer une couleur hexagonale aléatoire sur la touche appuyez sur la touche. P>
'#' + math.floor (E. Qui * 16777215) .Tostring (16); code> mais cela génère un code de 7 caractères au lieu de 6? P>
4 Réponses :
Vous obtenez un code de lettre Pour que votre code fonctionne, assurez-vous simplement 7 code> car vous travaillez avec un numéro qui ne peut pas être représenté comme 6 code> de caractères hexadecimal. 16777215 Code> (base 10) dans la base 16 est ffffff code>. Si votre numéro décimal augmente tout em> plus grand, une autre lettre hexadécimale / chiffre sera utilisée pour l'exprimer. P> 16777215 Code > est le plus élevé. p> 222 code> semble être le code clé le plus élevé possible (corrigez-moi si je me trompe): p>
Un code de couleur hexagonale comporte 3 composants de 00 à FF concaténés pour former une seule chaîne. Ce n'est pas simplement un numéro hexagonal de 6 caractères. Donc, un générateur de couleurs aléatoires serait quelque chose comme: ajoutez de semis au besoin. P> p>
Il n'y a absolument aucune différence entre un numéro hexagonal aléatoire de 6 caractères et 3 numéros hexagonaux aléatoires de 2 caractères concaténés ensemble, à moins que quelque chose ne va pas avec le générateur de nombres aléatoires, ce qui ne répond pas réellement à la question de l'OP.
@ Mumind-Oui, vous êtes correct, où les composants sont 00 à FF donnant 000000 à FFFFFF. Peut-être que j'ai été distrait par la gamme décimale de 0 à 255.
En disant que vous voulez un nombre aléatoire "ensemencé", je suppose que vous voulez la même couleur chaque fois que la même clé est enfoncée. Malheureusement, vous ne pouvez pas contrôler le Math.random () code> graines en JavaScript et n'accepte pas une graine comme paramètre comme dans d'autres langues.
Vous pouvez générer un numéro hexagone de recherche aléatoire avec quelque chose comme ceci: p> Ceci devrait générer un numéro unique pour tout dans la gamme ASCII, mais certaines des couleurs peuvent très similaires. p> p> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="out">Type in the input box to change its background color :<input id="test">
<p>Below is a list of colors generated for ASCII 32 through 126</p>
</div>
Hé bonne solution! Je sais que cela fait longtemps que cela n'a pas pu éviter l'étape% puisque vous utilisez le péché qui appartient toujours à [-1, 1]? L'utilisation d'ABS garantit également que la sortie appartient toujours à [0, 1] * 0xFFFFFF.
@afe Vous avez raison, merci de le pointer. J'ai mis à jour la réponse.
Un javascript facile à utiliser serait ceci:
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
L'OP a déjà du code pour générer des valeurs de couleur aléatoires. Ils demandent comment la modifier pour que la valeur de couleur dépend de la touche enfoncée, ce qui ne vous aide pas.
math.floor (math.random () * 16) code> serait préféré. Math.Random () génère des chiffres dans [0,1) - 1 exclu. Votre version retourne 0 et 15 avec la moitié de la probabilité des autres nombres ».
Qu'est-ce que cela a à voir avec jQuery?
Fondamentalement parce que le site Web utilise JQuery peut-être que quelqu'un aurait pu suggérer une version jQuery;)
Oh, tu veux dire comme:
$. GetRandomColour (); code>? Je suis surpris que personne ne l'a suggéré - sûrementil y a un plugin JQuery pour ce code>.