begin process at 2012 02 14 00:21:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > AYXCOLORPIKER - SÉLÉCTEUR DE COULEURS JAVASCRIPT

AYXCOLORPIKER - SÉLÉCTEUR DE COULEURS JAVASCRIPT


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :selecteur, couleur, colorpiker, color piker Niveau :Débutant Date de création :30/04/2008 Date de mise à jour :30/04/2008 13:28:12 Vu / téléchargé :5 565 / 267

Auteur : alphayax

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Ce sélecteur de couleur vous permettra de choisir une couleur simplement et rapidement.
Il est assez ergonomique et s'inspire du style de sélecteur de PHPBB3.
Le code est optimisé au maximum je pense...

Il y a une fonction close() et open() qui servent respectivement à cacher ou afficher le sélecteur sur un evenement que vous définirez.

Dans le Zip, vous trouverez un exemple d'utilisation très simple de cette classe.

Source

  • /**
  • * @author AlphaYaX
  • * @version 1.1
  • **/
  • /**
  • * @name Class ayxColorPiker
  • * @desc Selecteur de couleur
  • * @param psColorPanelDiv : Div qui contiendra le selecteur de couleur
  • **/
  • function ayxColorPiker(psColorPanelDiv)
  • {
  • /****
  • * Attributs
  • ****/
  • this.m_divColorPannel = psColorPanelDiv; // Div qui contiendra la pallete de couleurs.
  • this.m_divSourcePannel = ""; // Div qui contiendra la couleur de retour
  • this.m_nStep = 50; // Pas pour la génération des couleurs. (varie entre 0 et 255)
  • /**
  • * @name dispColor
  • * @desc Affiche la couleur survolée dans le div d'affichage
  • * @param psColor : Couleur actuellement survolee
  • **/
  • this.dispColor = function (psColor)
  • {
  • document.getElementById(this.m_divSourcePannel).style.backgroundColor = psColor;
  • };
  • /**
  • * @name close
  • * @desc Ferme la fenetre de selection de la couleur
  • * @param <none>
  • **/
  • this.close = function ()
  • {
  • document.getElementById(this.m_divColorPannel).style.display = 'none';
  • };
  • /**
  • * @name open
  • * @desc Ouvre la fenetre de selection de la couleur
  • * @param <none>
  • **/
  • this.open = function ()
  • {
  • document.getElementById(this.m_divColorPannel).style.display = 'block';
  • };
  • // Creation des elements de base du tableau
  • var oTableContainer = document.getElementById(this.m_divColorPannel);
  • var oTable = document.createElement("Table"); oTableContainer.appendChild(oTable);
  • var oTBody = document.createElement("TBody"); oTable.appendChild(oTBody);
  • // Ecart entre les cellules de couleurs
  • var attSpacing = document.createAttribute("cellspacing");
  • attSpacing.nodeValue = "1";
  • oTable.setAttributeNode(attSpacing);
  • // Style sur le tableau
  • oTable.border = "1px solid black";
  • oTable.style.margin = "0px";
  • oTable.style.padding = "0px";
  • // Création des lignes
  • for (var iRed=0; iRed<256; iRed+=this.m_nStep)
  • {
  • // Nouvelle ligne
  • var oRow = document.createElement("Tr"); oTBody.appendChild(oRow);
  • for (var iGreen=50; iGreen<256; iGreen+=this.m_nStep)
  • {
  • for (var iBlue=0; iBlue<256; iBlue+=this.m_nStep)
  • {
  • // Création de la cellule
  • var oCell = document.createElement("Td"); oRow.appendChild(oCell);
  • var sColor = "rgb("+iRed +","+iGreen +","+iBlue +")";
  • // Style sur les cellules
  • oCell.style.width = 8;
  • oCell.style.height = 8;
  • oCell.style.margin = 0;
  • oCell.style.padding = 0;
  • oCell.style.backgroundColor = sColor;
  • // Evenements
  • oCell.onclick = function() { oColorPiker.close(); };
  • oCell.onmouseover = function() { oColorPiker.dispColor(this.style.backgroundColor); };
  • };
  • };
  • };
  • };
/**
* @author   AlphaYaX
* @version  1.1
**/

/**
* @name   Class ayxColorPiker
* @desc   Selecteur de couleur
* @param  psColorPanelDiv : Div qui contiendra le selecteur de couleur
**/
function ayxColorPiker(psColorPanelDiv)
{
  /****
  * Attributs
  ****/
  this.m_divColorPannel  = psColorPanelDiv; // Div qui contiendra la pallete de couleurs.
  this.m_divSourcePannel = "";              // Div qui contiendra la couleur de retour
  this.m_nStep           = 50;              // Pas pour la génération des couleurs. (varie entre 0 et 255)


  /**
  * @name   dispColor
  * @desc   Affiche la couleur survolée dans le div d'affichage
  * @param  psColor : Couleur actuellement survolee
  **/
  this.dispColor = function (psColor)
  {
    document.getElementById(this.m_divSourcePannel).style.backgroundColor = psColor;
  };


  /**
  * @name   close
  * @desc   Ferme la fenetre de selection de la couleur
  * @param  <none>
  **/
  this.close = function ()
  { 
    document.getElementById(this.m_divColorPannel).style.display = 'none'; 
  };


  /**
  * @name   open
  * @desc   Ouvre la fenetre de selection de la couleur
  * @param  <none>
  **/
  this.open = function ()
  { 
    document.getElementById(this.m_divColorPannel).style.display = 'block'; 
  };
  


  // Creation des elements de base du tableau
  var oTableContainer = document.getElementById(this.m_divColorPannel);
  var oTable = document.createElement("Table");   oTableContainer.appendChild(oTable);
  var oTBody = document.createElement("TBody");   oTable.appendChild(oTBody);
  
  // Ecart entre les cellules de couleurs
  var attSpacing = document.createAttribute("cellspacing");
  attSpacing.nodeValue  = "1";   
  oTable.setAttributeNode(attSpacing);
  
  // Style sur le tableau
  oTable.border = "1px solid black";
  oTable.style.margin  = "0px";
  oTable.style.padding = "0px";
  
  // Création des lignes
  for (var iRed=0; iRed<256; iRed+=this.m_nStep)
  {
    // Nouvelle ligne
    var oRow = document.createElement("Tr");    oTBody.appendChild(oRow);
    
    for (var iGreen=50; iGreen<256; iGreen+=this.m_nStep)
    {
      for (var iBlue=0; iBlue<256; iBlue+=this.m_nStep)
      {
        // Création de la cellule
        var oCell   = document.createElement("Td");   oRow.appendChild(oCell);
        var sColor  = "rgb("+iRed +","+iGreen +","+iBlue +")";
        
        // Style sur les cellules
        oCell.style.width   = 8;
        oCell.style.height  = 8;
        oCell.style.margin  = 0;
        oCell.style.padding = 0;
        oCell.style.backgroundColor = sColor;
                
        // Evenements
        oCell.onclick       = function() { oColorPiker.close(); };
        oCell.onmouseover   = function() { oColorPiker.dispColor(this.style.backgroundColor); };
      };
    };
  };

};




 Conclusion

Ce sélecteur de couleur n'est peut être pas parfait, mais il a l'avantage d'être facilement adaptable à la plupart des situations.

Cette version est stable et sans bugs connus.

 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

30 avril 2008 13:28:12 :
V 1.1 : [fix] L'affichage du div est corrigé dans le fichier de test [up] Des couleurs ont été supprimés car peu différentes

 Sources de la même categorie

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
Source avec Zip Source avec une capture DRAG & DROP VERS UN CANVAS par kazma
Source avec Zip ROTATION D'UNE IMAGE, ANIMATION par william voirol

 Sources en rapport avec celle ci

COULEUR DE FOND SELON POSITION SOURIS par mailliam
Source avec Zip Source avec une capture PALETTE DE COULEUR par kazma
Source avec Zip Source avec une capture EFFET DE SURBRILLANCE EN JAVASCRIPT par zulrigh
Source avec Zip Source avec une capture LIBRAIRIE DE GESTION DES COULEURS POUR CSS : COLORPARSER par ryosama
Source avec Zip Source avec une capture COLOR PICKER PHOTOSHOP (PALETTE PANTONE, RGB, CMYK, HSV, WEB... par MaX3315

Commentaires et avis

Commentaire de nicomilville le 30/04/2008 10:49:04

Salut,

Bon code !!!
Pas de note pour l'instant... j'attend de voir si tu va faire des modifications...

Maintenant les remarques un peu moins gentilles :

Je ne vois pas ou est le div qui est censé afficher la couleur qui est survolé !!!
Je pense également qu'il est peut être un peu trop étendu peu être que tu pourrai le faire de la forme d'un carré et suppimer quelque colone par exemple les couleur foncé on dirai qu'elles sont en trois exemplaires chacune !!!

a++

Commentaire de ralecul le 30/04/2008 15:14:45 7/10

Salut,

Ton code est intéressant mais je te propose quelques améliorations :
- Possibilité de l'instancier plusieurs fois.
- Passage d'options "à la prototype".
- Ajout de callback onUpdate et onChange.
- Amélioration de la création de la table
- Correction de bug mineur : table.style.border, cell.style.height = 8+"px", Picker

Voici le code correspondant :



{Fichier : index.html}



<html>
<head>
  <script type="text/javascript" src="ayxColorPicker.js"></script>
<style type="text/css">
div.selector {
float: left;
width: 50px;
height: 50px;  
margin: 2px;
border: 1px solid black;
}
</style>
</head>
<body>
  
  <div id="container"></div>
  <div id="update" class="selector"></div>
  <div id="change" class="selector"></div>
  
  <br style="clear: both; margin: 50px;" />
  
  <div id="container2"></div>  
  <div id="update2" class="selector"></div>
  <div id="change2" class="selector"></div>
    
<script type="text/javascript">
function $(id) {
return document.getElementById(id);
}

new ayxColorPicker("container", {
nbStep   : 30,
autoHide : true,
onUpdate : function(colorPicker, red, green, blue) {
$('update').style.backgroundColor = "rgb("+red +","+green +","+blue +")";
},
onChange : function(colorPicker, red, green, blue) {
$('change').style.backgroundColor = "rgb("+red +","+green +","+blue +")";
}
});  

new ayxColorPicker("container2", {
autoHide : false,
onUpdate : function(colorPicker, red, green, blue) {
$('update2').style.backgroundColor = "rgb("+red +","+green +","+blue +")";
},
onChange : function(colorPicker, red, green, blue) {
$('change2').style.backgroundColor = "rgb("+red +","+green +","+blue +")";
}
});  
</script>
</body>
</html>



{Fichier : ayxColorPicker.js}



function ayxColorPicker(div, options)
{
var _div = (typeof(div) == "string") ? $(div) : div;

var _options  = options || {};
var _autoHide = _options.autoHide || false;
var _nbStep   = _options.nbStep   || 50;
var _onChange = _options.onChange || false;
var _onUpdate = _options.onUpdate || false;

var _that = this;

  this.hide = function()
  {
    _div.style.display = 'none';
  };


  this.show = function()
  {
    _div.style.display = 'block';
  };
  
function buildHtml()
{
var table = document.createElement("table");  
table.setAttribute("cellspacing", 1);
table.style.border = "1px solid black";
table.style.margin  = "0";
table.style.padding = "0";

for (var red=0; red<256; red += _nbStep)
{
var row = document.createElement("tr");

for (var green=0; green<256; green += _nbStep)
{
for (var blue=0; blue<256; blue += _nbStep)
{
var cell   = document.createElement("td");
cell.style.width   = 8 + "px";
cell.style.height  = 8 + "px";
cell.style.margin  = 0;
cell.style.padding = 0;
cell.style.backgroundColor = "rgb("+red +","+green +","+blue +")";

cell.onclick = function(r, g, b) //closure trick
{
return function()
{
if (_autoHide)
_that.hide();

if (_onChange)
_onChange(_that, r, g, b);
}
}(red, green, blue);

cell.onmouseover = function(r, g, b)
{
return function()
{
if (_onUpdate)
_onUpdate(_that, r, g, b);
}
}(red, green, blue);

row.appendChild(cell);
}
}
table.appendChild(row);
}
_div.appendChild(table);
}

buildHtml();
}



PS : Ya pas moyen d'avoir de la coloration syntaxique lors de l'ajout de code dans un commentaire ?

Commentaire de nicomilville le 30/04/2008 15:39:07

J'ai vu que tu avais fait des modifications, c'est mieux mais il reste encore un une chose :

- es ce que tu vois une diférence entre les deux premier carré foncé ?

PS : J'attend les avis des autres pour voir si ils vont dans mon sens ou pas, pour l'instant tu a 8.5 !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Changer la couleur d'un textfield [ par Blondy ] J'aimerais faire une méthode qui change la couleur d'un textfield. Je sais que nous pouvons changer le texte avec .value mais la couleur, avec .style? changer de couleur la cellule quand la souris vient et part [ par Stephane ] salut a tousvoila je connais pas trop javascript, alors je me sert des sources qu'il y a, mais y a un truc qu'il n'y est pas :Comment peut on changer Changer der couleur un bouton. [ par SoniqExnihilo ] Salut.j'ai fait un bouton bleu et j'aimerai que quand je click dessu il devien rouge par exemple.Voila le code que j'ai ecris mais il produit une erre Couleur d'une cellule d'un tableau html [ par ypothier ] Est-ce que quelqu'un pourrai m'aider. J'ai un tableau HTML bien simple. Mais j'aimerai être capable de modifier la class à laquel il appartient dans u COULEUR DE FOND [ par PatriceVB ] Est-il possible quand on clique sur un lien, de changer la couleur de fond de la page ? Changement de couleur de cellules dans un tableau [ par krevette ] Bonjour tt le mondej'aimerais changer la couleur des cellules d'un tableau (jusque la pas de probleme). Mais ce qu'il y a c'est que je voudrais change couleur du texte d'une cellule ou la couleur du fond d'une cellule d'une table [ par rabdane ] J'aimerais avoir un javascript qui change la couleur du texte d'une cellule ou la couleur du fond d'une cellule d'une table appelé TABLE1.cette table probleme avec couleur scrool I.E [ par Meduse ] Votre texte ICIVotre texte ICIje place ce bout de code entre les balises &lt;HEAD&gt; et &lt;/HEAD&gt; dans ma page hTML pour pouvoir collorer la scro Roll-over spécial [ par Inc0 ] Voila, je voudrai faire un rollo- over assez joli.Lorsque la souris est au dessus du lien ça change de couleur. Ok ça j' arrive (lol), mais maintenant Couleur des separateur de frames... [ par Mirror1661 ] Salut!ça doit etre super simple mais j'y arrive pas... Comment on change la couleur des bordures qui separent les differentes frames?MerciMirror.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 2,402 sec (3)

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