begin process at 2008 08 30 00:30:41
1 233 952 membres
470 nouveaux aujourd'hui
14 294 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONTRÔLE POUR FORMULAIRE


Information sur la source

Catégorie :Formulaire Classé sous : objet, controle, hexadecimal, formulaire Niveau : Initié Date de création : 16/05/2006 Date de mise à jour : 18/05/2006 17:36:39 Vu / téléchargé: 10 689 / 579

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

Description

Contrôle vertical avec trois événements qui sont gérés (onmove, onchange et onclick). Dans l'exemple que j'ai mis dans le zip j'utilise seulement l'événement onmove, mais les autres peuvent être très utile aussi.

Comment Utiliser :

Initialisation de la classe de mon contrôle :
<SCRIPT language="javascript" type="text/javascript" src="controleur.js"></SCRIPT>

Création d'un contrôle :
<SCRIPT language="javascript" type="text/javascript">
variable = new btn(IdDuControle,positionX,positionY,valeurMaximum,valeurParDefault,Hauteur,CouleurDeLaTige,CouleurDuControle);
variable.onmove = votrenomdefonction;
variable.onchange = votrenomdefonction;
variable.onclick = votrenomdefonction;
</SCRIPT>

Source

  • // controleur.js //
  • var element2move = false;
  • var lstElement = new Array();
  • function select(obj)
  • {
  • element2move = obj.id;
  • lstElement[element2move].onclick();
  • }
  • function unselect()
  • {
  • try
  • {
  • bkE = element2move; // Garde la valeur en mémoire
  • element2move = false; // On efface la valeur de l'élément a bouger //
  • /*
  • Note: Si on efface pas cette valeur avant d'effectuer la fonction onchange le controleur peut se
  • déplacer pendant l'exécution de la fonction onchange surtout quand il y a un alert, promt ou confirm.
  • */
  • lstElement[bkE].onchange();
  • }
  • catch(e)
  • {
  • // La personne a cliqué ailleur que sur un contrôle, donc rien a déselectionner //
  • }
  • }
  • function bougeElement(event)
  • {
  • if (element2move)
  • {
  • eventY = (navigator.appName == "Microsoft Internet Explorer") ? window.event.clientY - 10 : event.pageY; // Trouve la bonne position selon le navigateur //
  • object = lstElement[element2move];
  • posX = Math.max(eventY,object.startpoint); // S'assure que l'objet n'est pas déplacer trop bas //
  • posX = Math.min(posX,(object.maxheight + object.startpoint)); // S'assure que l'objet n'est pas déplacer trop haut //
  • document.getElementById(element2move).style.top = posX; // Affiche le controleur a la bonne position //
  • lstElement[element2move].value = Math.round((posX-lstElement[element2move].startpoint)/lstElement[element2move].maxheight*lstElement[element2move].maxvalue); // Calcule la valeur de l'objet//
  • lstElement[element2move].onmove(); // Effectue l'événement de mouvement //
  • }
  • }
  • function btn(id,posX,posY,maxValue,defaultValue,height,colorTige,colorControl) // Ajuste les valeurs et écrit le contrôleur //
  • {
  • lstElement[id] = this;
  • this.id = id;
  • this.maxheight = height;
  • this.startpoint = posY;
  • this.onmove = function (){};
  • this.onchange = function (){};
  • this.onclick = function () {};
  • this.value = defaultValue;
  • this.maxvalue = maxValue;
  • document.write('<DIV style="background-color:'+colorTige+';height:'+height+'px;width:2px;left:'+(posX+15)+'px;top:'+posY+'px;position:absolute;"> </DIV>');
  • document.write('<DIV style="background-color:'+colorControl+';height:10px;width:30px;left:'+posX+'px;top:'+(posY+defaultValue)+'px;position:absolute;" tag="a" id="'+id+'" onmousedown="select(this)"></DIV>');
  • }
// controleur.js //

var element2move = false;
var lstElement = new Array();

function select(obj)
{
    element2move = obj.id;
    lstElement[element2move].onclick();
}

function unselect()
{
    try
    {
        bkE = element2move; // Garde la valeur en mémoire
        element2move = false; // On efface la valeur de l'élément a bouger //
        /*
        Note: Si on efface pas cette valeur avant d'effectuer la fonction onchange le controleur peut se
        déplacer pendant l'exécution de la fonction onchange surtout quand il y a un alert, promt ou confirm.
        */
        lstElement[bkE].onchange();
    }
    catch(e)
    {
        // La personne a cliqué ailleur que sur un contrôle, donc rien a déselectionner //
    }
}

function bougeElement(event)
{
    if (element2move)
    {
        eventY = (navigator.appName == "Microsoft Internet Explorer") ? window.event.clientY - 10 : event.pageY; // Trouve la bonne position selon le navigateur //
        object = lstElement[element2move];
        posX = Math.max(eventY,object.startpoint); // S'assure que l'objet n'est pas déplacer trop bas //
        posX = Math.min(posX,(object.maxheight + object.startpoint)); // S'assure que l'objet n'est pas déplacer trop haut //
        
        document.getElementById(element2move).style.top = posX; // Affiche le controleur a la bonne position //
        
        lstElement[element2move].value = Math.round((posX-lstElement[element2move].startpoint)/lstElement[element2move].maxheight*lstElement[element2move].maxvalue); // Calcule la valeur de l'objet//
        lstElement[element2move].onmove(); // Effectue l'événement de mouvement //
    }
}

function btn(id,posX,posY,maxValue,defaultValue,height,colorTige,colorControl) // Ajuste les valeurs et écrit le contrôleur //
{
    lstElement[id] = this;
    this.id = id;
    this.maxheight = height;
    this.startpoint = posY;
    this.onmove = function (){};
    this.onchange = function (){};
    this.onclick = function () {};
    this.value = defaultValue;
    this.maxvalue = maxValue;
    document.write('<DIV style="background-color:'+colorTige+';height:'+height+'px;width:2px;left:'+(posX+15)+'px;top:'+posY+'px;position:absolute;"> </DIV>');
    document.write('<DIV style="background-color:'+colorControl+';height:10px;width:30px;left:'+posX+'px;top:'+(posY+defaultValue)+'px;position:absolute;" tag="a" id="'+id+'" onmousedown="select(this)"></DIV>');
}

Conclusion

Mise à jour à venir :

- Contrôle à la horizontale
- Règle le bug de la taille du contrôle avec IE (affiche le contrôle avec des tailles trop grandes)

Fonctionnalité :

- Firefox (parfait)
- IE (juste le problème de taille avec le contrôle ... rien de majeur)
- Autre à confirmer

Si vous avez des commentaires, suggestions ... insultes. Allez-y.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

18 mai 2006 17:36:39 :
.
    Aucun commentaire pour le moment.

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS