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 :

Modifier position curseur


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Structure conditionnelle et variables... [Résolu]
    Salut, je voudrais savoir si il il existe une fonction qui permet de modifier la position du curseur grâce à JavaScript Flash ou je ne sais quel autre langage de programmation. Une fonction tel que windows_mouse_set(x,y) pour ceux qui connaissent le GML.

    Merci, Zwify.

  2. #2
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Non ce n'est pas possible, ça va à l'encontre du bon sens question sécurité. Imagine qu'on s'amuse à déplacer ton curseur au moment de cliquer sur quelque chose d'agréable pour quelque chose de désagréable.

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    Imagine qu'on s'amuse à déplacer ton curseur au moment de cliquer sur quelque chose d'agréable pour quelque chose de désagréable.
    +1 ^^

    C'est même un délicieux euphémisme quand on pense à ce que des publicitaires (par exemple... ) pourraient faire de ce genre de procédé... ^^

    (et c'est d'ailleurs parce qu'ils ne pouvaient pas déplacer le curseur de la souris directement qu'ils ont dans un premier temps inventé les pub flottantes, se déplaçant dans la page, etc... affreux )

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Re.
    Re, c'est sur qu'il n'y a aucun moyen, même avec n'importe quel langage de programmation, ou sinon est-il possible de désactiver provisoirement un script pendant un petit temps au déclanchement d'un autre script ?

  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Dis-nous quel est le problème que tu essaies de résoudre par ce moyen : il y a probablement une autre manière de procéder...

  6. #6
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Si tu ne viens pas à LAGARDERE, LAGARDERE viendra à toi !
    Tu peux peut être déplacer un élément de ton DOM sous ton curseur

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Je possède un menu accordéon vertical jQuery et j'ai changé d'idée ce qui pourrait être en fait plus simple : y aurait-il un moyen pour qu'une fonction s'active uniquement si le curseur reste en contact plusieurs secondes avec l'élément ou lieu qu'elle s'active seulement au contact (mouseover).

    Merci ^^

  8. #8
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Bien sûr ^^ il te faut juste une petite fonction qui lance un timer au mouseover, et sur le mouseout tu annules le timer : si l'utilisateur a survolé l'élément au moins le temps du timer (que tu règles sur 2 secondes, 3 secondes, 4 mois, comme tu veux ) ça déclenche ton effet...

    (si tu connais un peu la lib script.aculo.us, tu peux voir des exemples dans leur code c'est très bien écrit ^^)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Re, suite à ton message j'ai cherché dans google "timer mouseover" et j'ai trouvé cette page : Ici et plus particulièrement le message de marcha.

    Comme je n'y connais rien au javascript, j'ai essayer de réactiver mes vieilles connaissance de GML j'ai réussis au bout d'une bonne demi-heure à le faire fonctionner et c'est nickel =)

    Comme je suis un perfectioniste j'ai voulu faire en sorte que le menu s'ouvre en mouseover seulement la première fois ou alors seulement si touts les menus sont fermés et sinon en timermouseover x], voilà le code :

    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
    <script type="text/javascript">
    $(document).ready( function () {
        $(".navigation ul.Menu:not('.open_at_load')").hide();
     
    		if (????????????????????????????????????????????????????)
    				{$(".navigation li.toggleMenu .partie").mouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				})}
    			else
    				 {$(".navigation li.toggleMenu .partie").delayedMouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				}, { delay: 1000 })}
    			return false
    } ) ;
    </script>
    Et dans le premier if j'ai pensé à mettre divers trucs :
    - si un menu est ouvert donc un ("ul.Menu").length != 0
    - si un menu possède la class open
    - ou alors l'introduction d'une variable

    Mais je n'ai réussi à faire fonctionner aucune de ces idées -_-"

    C'est qu'un détail mais chuis un peu têtu ^^"



    HS : Pour ceux que ça intéresse je me suis rendu compte d'un petit truc quand j'ai du refaire fonctionner mon menu sous FireFox et Safari dans l'optique de compatibilité des navigateurs.
    En faite c'est juste que le fait que les interpréteurs JavaScript des navigateurs Mozilla Firefox et Apple Safari gère différemment les IDs CSS (il n'autorise leur utilisisation qu'une seul fois) tandis que Google Chrome, Internet Explorer et Opera autorisent l'utilisation des IDs comme des CLASSs.
    Fin voilà ça ne sert pas à grand chose à part à la compatibilité des navigateurs de certains scripts et pour votre culture général du CSS x)

    a+

  10. #10
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Heu je ne suis pas très familier de la syntaxe jQuery je laisse la main à ceux qui en mangent tous les matins ^^

    (par contre, simple détail en passant : tu as confondu les balises CODE avec les balises QUOTE ça rend l'affichage de ton extrait de code un peu "moche" et pas colorisé )

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Salut, j'ai passé pas mal de temps pour mieux apprivoiser le JavaScript et comprendre l'idée de Framework ce qui m'a permi de pas mal progresser dans le problème.
    Je pense avoir presque trouvé la solution mais ma trop faible connaissance du JS me pose des problèmes sur les variables :
    j'ai donc utilisé un système de variable, j'arrive à la déclarer ainsi que l'utiliser dans un IF mais pas à changer sa valeur correctement :/

    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
    var ouvert = 1;
    $(document).ready( function () {
        $(".navigation ul.Menu:not('.open_at_load')").hide();
     
    		if(ouvert==1)
    				{
    					$(".navigation li.toggleMenu .partie").mouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				})
    			 }
    			else
    				 {
    					 $(".navigation li.toggleMenu .partie").delayedMouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				}, { delay: 1000 })}
    		return false;
    } ) ;
    le but étant que la var ouvert passe à une autre valeur que 1 en même temps qu'un menu s'ouvre en mouseover (donc la première et la dernière fois)
    Je ne pense pas qu'il faille bien connaître jQery mais plutôt le fonctionnement de JS et ses variables pour régler se problème

    En espérant que vous saurez résoudre se problème ^^

  12. #12
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    Je ne sait pas à quel moment tu veux changer la valeur de ouvert, mais tu ne le fais jamais!
    Place ouvert = x à l'endroit que tu souhaites et ça fonctionnera.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Re, franchement j'ai passé la soirée à essayer de comprendre le fonctionnement de Javascript et j'ai encore, malgré ma migraine ^^ du mal à comprendre les fonctions, le comportement des variables, les attribues, instructions et autres évènements (tout à tendance à se mélanger dans ma tête) alors je m'en remets à vous, gourous du JavaScript et jQuery pour m'aider.
    Je voudrais donc faire en sorte que les menus (accordéon jQuery) s'ouvre la première fois et seulement la première fois où il y a contact en mouseover et ensuite, le reste du temps en delayedMouseover.
    Parce que moi qui avait essayé avec un système de variable, et bien à chaque fois la variable se remettait à sa valeur initiale, fin bon , prise de tête.
    Voilà le code d'ouverture de menu sans aucun ajout de ma part :
    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
    $(document).ready( function () {
        $(".navigation ul.Menu:not('.open_at_load')").hide();
    		if()
    				{
    					$(".navigation li.toggleMenu .partie").mouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				})
    			 }
    			else
    				 {
    					 $(".navigation li.toggleMenu .partie").delayedMouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				}, { delay: 1000 })}
    		return false;
    } ) ;
    J'étais parti un peu vite en pensant que le système de variables de JavaScript ainsi que son fonctionnement était similaire à celui du GML ce qui m'a value plusieurs heures de recherches et testes inutiles car pas dans la bonne direction x].

  14. #14
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Zwify Voir le message
    Parce que moi qui avait essayé avec un système de variable, et bien à chaque fois la variable se remettait à sa valeur initiale, fin bon , prise de tête.
    >>> se remettait à sa valeur initiale ? si tu veux dire : après rechargement de la page c'est normal, sinon ça doit être un problème de portée ^^

    Citation Envoyé par Zwify Voir le message
    ... alors je m'en remets à vous, bourreaux du JavaScript et jQuery pour m'aider ...
    >>> heu bourreaux ou gourous ?

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Euh gourous, petite erreur due à la fatigue lol

    Sinon la portée des variable j'ai franchement du mal alors si vous pouviez m'aider ce serait cool je vais continuer à faire des essais et à lire des doc sur JavaScript mais je pense pas que je trouve quelque chose qui marche

    EDIT : Je viens de tomber là dessus en cherchant plus d'info sur les variables, je cite :

    Variables statiques

    Les programmeurs familiers avec d’autres langages pourraient s’attendre aux variables statiques. Ces variables sont comme les variables locales, i.e. disponibles uniquement à l’intérieur de la fonction, mais leur valeur ne se perd pas entre chaque appel de la fonction. Ce type de portée n’existe pas en JavaScript.
    Hors c'est exactement ce que je cherche, une variable qui ne perd pas sa valeur, les variables globales ont-elles cette caractéristique ?...

  16. #16
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Zwify Voir le message
    Hors c'est exactement ce que je cherche, une variable qui ne perd pas sa valeur, les variables globales ont-elles cette caractéristique ?...
    Oui.

    >>> Pour déclarer une variable globale et non locale, il suffit d'initialiser (par exemple en tête de script) une variable sans utiliser le mot-clef "var" devant le nom de la variable (du coup, attention aux déclarations "involontaires" de globales par oubli du "var" )

    Cela dit, leur utilisation est déconseillée dans la mesure du possible : dans quel but as-tu besoin de globales ?

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    YEEEEEEEEEEEEEHHHHHHHHHHHHHAAAAAAAAAAAAAAAAAAAA !!!!!!! j'ai trouvé
    En fait en passant que le problème venait des variables JavaScript eh bin j'ai utilisé une classe CSS pour m'en servir comme variable (grâce aux fonctions jQuery) et le problème subsistait . C'est la que je me suis rendu compte que le problème ne venait pas des variables mais du comportement des structures conditionnelles qui fonctionnait une fois au chargement de la page et ensuite quand un évènement (à l'intérieur de cette structure) était chargé soit JavaScript se souvenait de la réponse ou simplement ne reposait pas la question ce qui faisait que la valeur de la variable n'était pas re-vérifier donc c'était toujours la même partie qui était déclenchée. Ce qui m'a un peu étonné .

    Donc j'ai trouvé la solution en mettant la structure conditionnelle à l'intérieur des actions à exécuter en cas d'évènement et ça marche :
    Il m'aura suffit d'une dizaine d'heure de recherche et de test pour ce truc qu'y n'a finalement pas autant d'intérêt que ça mais je ne pouvais renoncer

    Voilà le code (qui marche ) [j'ai remplacé le système de classe CSS par les variables JS locale] :
    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
    $(document).ready( function () {
    		$(".partie").css("border-bottom","1px solid black");
    		var ouvert=false
     
      	$(".navigation ul.Menu:not('.open_at_load')").hide();
     
    		$(".navigation li.toggleMenu .partie").mouseover( function () {
    					 if(ouvert==false) {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal"); ouvert=true;
    						}
    						return false; }
    					 else {}
    					 return false
    				})
    } ) ;
     
    $(document).ready( function () {
    					 $(".navigation li.toggleMenu .partie").delayedMouseover( function () {
    						if ($(this).next("ul.Menu:visible").length != 0) {}
    						else {
    								$(".navigation ul.Menu").slideUp("normal", function () { $(this).parent().removeClass("open") });
    								$(this).parent().addClass("open");$(this).next("ul.Menu").slideDown("normal");
    						}
    						return false;
    				}, { delay: 250 })
    } ) ;
    Zwify

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

Discussions similaires

  1. Modifier un curseur par une image
    Par daninho dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 28/01/2006, 21h32
  2. [Curseur] Modifier le curseur lors d'un clic bouton
    Par Casp dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 01/12/2005, 11h45
  3. [win32][D5] - position curseur dans paintbox
    Par bregolhen dans le forum Composants VCL
    Réponses: 3
    Dernier message: 05/11/2005, 23h45
  4. [TstringGrid] et position curseur
    Par petitcoucou31 dans le forum Composants VCL
    Réponses: 10
    Dernier message: 01/11/2005, 22h28
  5. Réponses: 4
    Dernier message: 07/06/2005, 15h14

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