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 :

Scroll complet à la souris


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Scroll complet à la souris
    Bonjour tout le monde, et tout d'abord bonne année !

    Alors voilà mon problème, je chercherais un plugin de scroll à la souris : je vous donne un site comme exemple : http://fromtheroughmovie.com/#!/desk/dispatch/

    J'ai cherché différents plugins, pour essayer d'avoir le même résultat
    ( http://scripterlative.com/files/cursorpagescroll.htm par exemple ), mais impossible (lag lors du déplacement de la souris, scroll qui ne s'effectue qu'avec le curseur au bord de la fenêtre...

    De même j'ai essayé de décrypter le JS du 1er site, mais plus de 800ko (!!) de JS, c'est assez costaud, et même si j'ai déniché quelques pistes, j'aimerais avoir votre aide.

    Voilà si quelqu'un à déja eu à faire ce genre de plugin, ou me mettrait sur la voie (2 jours de recherche assez intensive).
    Je dois avouer qu'au niveau JS et math, ce n'est pas trop mon truc.

    Merci d'avance

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    Bonsoir,
    le principe est simple
    - récupération de la position de la mouse
    - suivant la position de celle ci scroll du document

    bien sûr il peut y avoir plus ou moins sophistiqué comme déplacement

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ceci dit, je trouve ça particulièrement désagréable comme ergonomie...

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    totalement pas navigable
    C'est de l'anti ergonomie pure, fait avoir du temps à perdre

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    J'avoue que c'est un système assez spécial, mais c'est pour une navigation sur une carte de 4000px de large, avec système de scrollTo() sur liens et autres.
    Si le client demande, on n'a malheureusement pas tout le temps la possibilité de l faire revenir à la raison.
    Il faut avouer quand même que ça change de style de navigation et puis si le sujet est à même d'être traité de cette façon, pourquoi pas.
    Clairement je ne le ferais pas sur un site "normal"

    @NoSmoking
    Je dois avouer avoir testé ce principe, mais malheureusement le scroll s'effectue en partie, et non sur toute la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    var coordY =e.clientY;
    var coordX= e.clientX;
     
    // var coordY =e.pageY;
    // var coordX= e.pageX;
     
    $.scrollTo(  coordY, { axis:'y' });
    $.scrollTo(  coordX, { axis:'x' });
    Avec le e.clientY ou X , ca scroll bien, mais juste sur la largeur de la fenetre client (normal quoi)

    Logiquement avec le e.pageY ou X, j'aurais tendance à penser avoir le même résultat,mais sur la page entière, malheureusement non : je me retrouve bloqué en bas à droite de l'écran.
    J'imagine qu'il manque quelque chose mais quoi...

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Si le client demande, on n'a malheureusement pas tout le temps la possibilité de l faire revenir à la raison.
    Mouais... heureusement que les architectes n'ont pas les mêmes raisonnements, sinon, il y aurait un paquet de maisons bancales !
    Sincèrement, le spécialiste, c'est toi ou le client ?
    Il faut savoir lui expliquer que ce qu'il veut, c'est pas terrible !
    A la rigueur un scroll à la souris mais contrôlé (lié à l'appui du bouton) passe encore, mais lié juste à la position de la souris, c'est à faire fuir tous tes visiteurs !

  7. #7
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Mieux vaut un bon drag drop que cette egonomie là ...

    Il y a d'ailleurs un bel exemple sur developpez
    http://dmouronval.developpez.com/clipper/
    avec les commentaires ici
    http://www.developpez.net/forums/d10...e-google-maps/

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Oui bien sûr, en même temps, c'est pour une maquette pour l'instant, donc rien de définitif (j'avoue perso ne pas être fan de cette navigation), mais la marque voudrait quelque chose de différent (en bien ou en mal ça...).

    En ce qui concerne les architectes, tu as raison, en même temps on n'a pas les mêmes contraintes de sécurité .

    Pour le scroll lié au mousedown, j'y ai pensé aussi, je le garde de côté.

    En tout cas je continue à fouiner pour trouver une soluce digne de ce nom.

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour

    tu peut toujour essayer ca

    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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <style>
    #desk-background-1{
    width:2018px;
    height:1666px;
    position:relative;
    top:20px;
    left:0px;
    }
     
    #desk-background-2{
    width:2018px;
    height:1666px;
    position:relative;
    top:0px;
    left:2018px;
    margin-top:-1666px;
    }
    </style>
     
     
     
    <script type="text/javascript">
     
     
    var def={
     
    oxo:0,
    ixe:0,
    igrec:0,
     
    sensa:function(e){
     
    var clic=document.getElementById('clic')
     
    var omx=(clic.offsetLeft+(clic.offsetWidth/2))-def.ixe;
    if(omx>100 || omx<-100){									//zone morte
    clic.scrollLeft=clic.scrollLeft-Math.round(omx/20);			//vitesse augmenter la division pour diminuer la vitesse
    }
    var omy=(clic.offsetTop+(clic.offsetHeight/2))-def.igrec;
    if(omy>100 || omy<-100){									//zone morte
    clic.scrollTop=clic.scrollTop-Math.round(omy/20);			//vitesse augmenter la division pour diminuer la vitesse
    }
    },
     
    souris:function(e){
     
    def.ixe=e.clientX;
    def.igrec=e.clientY;
    }
    }
     
    function init(){
    document.getElementById('clic').addEventListener("mousemove", def.souris, false);
    document.getElementById('clic').style.height=screen.height+'px'
    def.oxo=setInterval(def.sensa,30)
    }
    onload=init
     
     
    </script>
    </head>
    <div  id='clic' style='overflow:hidden;width:100%'>
    <div>
    <img src='http://fromtheroughmovie.com/uploads/desk/background-1.jpg' id='desk-background-1'>
    <img src='http://fromtheroughmovie.com/uploads/desk/background-2.jpg' id='desk-background-2'>
    </div>
    </div>
    </body>
    </html>

  10. #10
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    not IE compatible ...

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Oui, il faut adapter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('clic').addEventListener("mousemove", def.souris, false);

  12. #12
    Invité
    Invité(e)
    Par défaut
    ces temps ci j'ai tendance a oublié les versions de ie < 9

    compatible ie c'est pas super fluide mais en meme temp c'est ie < 9

    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
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <style>
    #desk-background-1{
    width:2018px;
    height:1666px;
    position:relative;
    top:20px;
    left:0px;
    }
     
    #desk-background-2{
    width:2018px;
    height:1666px;
    position:relative;
    top:0px;
    left:2018px;
    margin-top:-1666px;
    }
    </style>
     
     
     
    <script type="text/javascript">
     
     
    var def={
     
    oxo:0,
    ixe:0,
    igrec:0,
     
    sensa:function(e){
     
    var clic=document.getElementById('clic')
     
    var omx=(clic.offsetLeft+(clic.offsetWidth/2))-def.ixe;
    if(omx>100 || omx<-100){									//zone morte
    clic.scrollLeft=clic.scrollLeft-Math.round(omx/20);			//vitesse augmenter la division pour diminuer la vitesse
    }
    var omy=(clic.offsetTop+(clic.offsetHeight/2))-def.igrec;
    if(omy>100 || omy<-100){									//zone morte
    clic.scrollTop=clic.scrollTop-Math.round(omy/20);			//vitesse augmenter la division pour diminuer la vitesse
    }
    },
     
    souris:function(e){
     
    e =(!e) ? window.event : e;
    def.ixe=e.clientX;
    def.igrec=e.clientY;
    }
    }
     
    function init(){
     
    var clic=document.getElementById('clic')
     
    if(parseInt(navigator.userAgent.substring(30,31))<=8){
    clic.attachEvent("onmousemove",def.souris);
    }
    else{
    clic.addEventListener("mousemove", def.souris, false);
    }
     
    clic.style.height=document.documentElement.clientHeight+'px'
    def.oxo=setInterval(def.sensa,30)
    }
    onload=init
     
     
    </script>
    </head>
    <div  id='clic' style='overflow:hidden;width:100%'>
    <div>
    <img src='http://fromtheroughmovie.com/uploads/desk/background-1.jpg' id='desk-background-1'>
    <img src='http://fromtheroughmovie.com/uploads/desk/background-2.jpg' id='desk-background-2'>
    </div>
    </div>
    </body>
    </html>
    Dernière modification par Invité ; 17/01/2012 à 23h00.

  13. #13
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    toujours pas pour IE8

  14. #14
    Invité
    Invité(e)
    Par défaut
    je vient de faire un copié coller de l'ensemble au cas ou il y avait une erreur mais il n'y en a pas et chez moi ca fonctionne avec ie 8 ??

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    Citation Envoyé par mekal Voir le message
    je vient de faire un copié coller de l'ensemble au cas ou il y avait une erreur mais il n'y en a pas et chez moi ca fonctionne avec ie 8 ??
    je rajouterais cela marche sous IE7.
    J'avoue que c'est un système assez spécial, mais c'est pour une navigation sur une carte de 4000px de large, avec système de scrollTo() sur liens et autres.
    Ergonomiquement parlant je rejoins SpaceFrog en ce qui concerne http://dmouronval.developpez.com/clipper/.

  16. #16
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    Bonjour

    heu juste une question comme ça :

    Ce script :"http://dmouronval.developpez.com/clipper/", est-ce qu'il marche si il y a des objets sur la page qui bouge (la grande image) ?
    J'avais essayé de faire une map style google mais des que je restais cliqué et que je bougeais , cela me sélectionnait les objets...

  17. #17
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 082
    Points : 44 698
    Points
    44 698
    Par défaut
    pas compris ta requête !

  18. #18
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    bonjour,

    désolé, je vais essayer de mieux m'exprimer.

    J'avais fait un script qui affiche une page (avec image de fond et d'autres objets par dessus, tels que des images, des divs ...) bien plus grande que la frame qui l'affiche.

    Je voulais faire comme google map : que l'on puisse déplacer la page (en déplacant les scroll de la frame) en restant cliquer sur la page et en bougeant la souris.

    J'ai donc fait une fonction qui me reconnait les clicks long, des clicks courts et lorsqu'un click long était reconnu, je voulais déplacer les scroll en fonction du déplacement de la souris (quand on maintient le click long en bougeant).

    Mais voilà, dés que je bougeais en restant cliqué, les évènements souris n'étaient plus reconnus et cela me sélectionnait les éléments de la page... Même l'arrêt du click n'était plus reconnu...

    J'avais déjà posté pour savoir comment empécher cela mais n'avait pas trouvé.

  19. #19
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    ben a partir du moment ou c'est un conteneur qui se déplace ...
    Je vois pas ou est le souci

  20. #20
    Membre averti
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Points : 352
    Points
    352
    Billets dans le blog
    1
    Par défaut
    ok, donc je vais essayer d'adapter le script car celui présenté ne prend pas en compte le click long, ni le click court et n'affiche aucun élément dans le conteneur, juste une image de fond.

    J'ai bien peur de retomber dans le même problème quand je mettrais mon click long (onclick avec setinterval qui vérifie que le click est toujours enfoncé, puis au bout de x interval passe en mode click long, me change le curseur et doit déplacer la page si je déplace la souris).

    Merci de ta réponse.

    (Peut-être que quand le click long est détecté, je dois mettre tous les objets de ma page en selected=enabled ou un truc du genre pour pas qu'ils soient sélectionnable)

Discussions similaires

  1. Empecher le scroll de la souris
    Par mordrhim dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/03/2021, 20h52
  2. [Access 2003] Gérer le scroll de la souris sans dll?
    Par Miss Ti dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/09/2008, 17h15
  3. [StringGrid] Empecher le scroll de la souris
    Par okparanoid dans le forum Delphi
    Réponses: 3
    Dernier message: 26/05/2007, 10h42
  4. Scroll avec la souris
    Par domb_st dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/05/2007, 18h41
  5. Combobox et Scroll de la souris
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 9
    Dernier message: 13/03/2006, 16h26

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