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 :

Exécuter une fonction que si onmousedown et onmousemove sont actionnés


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut Exécuter une fonction que si onmousedown et onmousemove sont actionnés
    Bonjour à tous,

    Je souhaite exécuter une fonction lorsque le clic gauche est appuyé et que l'on bouge la sourie.

    Comment fairiez-vous ?

    merci à tous pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ondrag ?
    voire ondragstart
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    J'ai regardé sur google "ondragstart" j'ai pas trouvé de doc !?

    Edit:

    Bon j'ai fait ça : "c'est inspiré d'un script déjà éxistant"

    Le script à pour but de dérouler la page sans utiliser la roulette ou la scroll bar. Pour dérouler la page il suffit de cliquer gauche appuyé et déplacer la sourie soit vers le haut soit vers le bas.

    Pour descendre puis remonter dans la page pas besoin de décliquer!

    Pour tester le script c'est par ici.

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
    	<head>
    		<script type="text/javascript">
    var down = 0;
     
    //défini l'état de la souris sur le bloc, mouseDown : 'down = 1' sinon 'down = 0'
    function setD(a,e)
    {
    	down = a;
    	//initialise les variables
     
    	//position initiale de la souris lorsqu'on clique sur le bloc
    	if(e.pageX) // selon le navigateur (ici pour firefox et peut-être autre...)
    	{
    		init_y = e.pageY;
    	}
    	else if(e.clientX) // (ici pour Internet Explorer et peut-être autre...)
    	{
    		init_y = e.clientY;
    	}
    	else // (ici pour Internet Explorer et peut-être autre...)
    	{
    		init_y = e.y;
    	}
     
    	 div_y = document.documentElement.scrollTop;
    }
     
    //fonction qui exécute le déplacement du bloc
    function drag(e)
    {
    	//si la souris est 'cliquée' sur le bloc
    	if(down==1)
    	{
    		//on récupère la position de la souris au moment de l'appel de la fontion
    		if(e.pageX) // selon le navigateur (ici pour firefox et peut-être autre...)
    		{
    			pos_y = e.pageY;
    		}
    		else if(e.clientX) // (ici pour Internet Explorer et peut-être autre...)
    		{
    			pos_y = e.clientY;
    		}
    		else // (ici pour Internet Explorer et peut-être autre...)
    		{
    			pos_y = e.y;
    		}
     
    		dy = pos_y - init_y; //distance entre la position initiale et la position actuelle en y
    		//déplace le bloc à sa nouvelle position ( -1 +1 pour qu'il reconnaisse que c'est un calcul...)
    		window.scrollTo(0,div_y + dy);
    	}
    }
     
    		function disableselect(e)
    			{
    			return false
    			}
     
    		function reEnable()
    			{
    			return true
    			}
     
    		//if IE4+
    		document.onselectstart=new Function ("return false")
     
    		//if NS6
    		if (window.sidebar)
    			{
    			document.onmousedown=disableselect
    			document.onclick=reEnable
    			}
     
    </script>
    	</head>
    <body style="margin:0;padding:0;background:gray;" onMouseDown="setD(1,event);" onMouseMove="drag(event);" onMouseUp="setD(0,event);">
    <div style="width:950px;height:1500px;margin:auto;background:url('developpez.jpg');">
    </div>
    </body>
    </html>
    Je rencontre des problèmes au niveau de la réactivité par apport au mouvement de la sourie.

    Sur Moz, safari, opera et chrome il y a une latence entre le changement de mouvement de la sourie et le "scrolling" de plus le défilement est très rapide. Pour une fois sur IE ça fonctionne bien. Je ne suis pas sur que ça soit un bon signe.


    Merci à tous vos réponses.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    on ne doit pas avoir le meme google
    ondragstart - Recherche Google
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Merci spacefrog,

    J'ai trouvé une doc.

    Parcontre cela ne réglera pas mon problème de latence dans mon script avez une solution à me proposer.

    Car je ne vois pas comment prendre en compte le changement de sens de la sourie lorsque l'on ne relache pas le click.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. [2.x] Exécuter une fonction quelle que soit la route
    Par Manuk dans le forum Symfony
    Réponses: 6
    Dernier message: 29/07/2011, 16h11
  2. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  3. Réponses: 29
    Dernier message: 09/02/2006, 17h11
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 14h45

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