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 :

Utilisation de l'event wheel


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut Utilisation de l'event wheel
    Bonjour, j'ai posté un message précédemment avec intitulé "faire un one page avec scroll" mais personne n'a répondu :/

    Quelques temps ont passé Je reviens vers vous avec quelque chose de plus intéressant je l’espère. Mon but était de faire un one page dont chaque page s'adapte à l'écran de l'utilisateur grâce à "window.innerHeight" et que je puisse accéder à chaque page avec la molette. Hors après plusieurs jours de recherche sur le mdn et sur différents sites j'ai réussi à trouvé (marqué dans mon code). Seulement il est assez vieux, il ne marche que sur firefox et certaine méthode sont dépassées et en recherchant sur le mdn je n'arrive pas à trouver les correspondance pour chrome et edge.
    Ceci étant avec firefox ca marche nikel, quand je roule un clik vers le bas ça scroll vers la page d'en bas, vers le haut ça scroll en haut et sur chrome et edge quand je scroll un click en bas ca scroll de deux page et quand je scroll un click vers le haut ça scroll 2 pages vers le haut.

    Quelqu'un pourrait il juste m'indiquer un tuto ou un site ou tout simplement m'expliquer comment faire fonctionner l'évenement wheel(event)

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
     
    /// SOURCE CODE : http://www.adomas.org/javascript-mouse-wheel/
     
    function wheel(event){
            var delta = 0;
            if (!event) /* For IE. */
                    event = window.event;
            if (event.wheelDelta) { /* IE/Opera. */
                    delta = event.wheelDelta/120;
            } else if (event.detail) { /** Mozilla case. */
                    /** In Mozilla, sign of delta is different than in IE.
                     * Also, delta is multiple of 3.
                     */
                    delta = -event.detail/3;
            }
            /** If delta is nonzero, handle it.
             * Basically, delta is now positive if wheel was scrolled up,
             * and negative, if wheel was scrolled down.
             */
            if (delta)
                    handle(delta);
            /** Prevent default actions caused by mouse wheel.
             * That might be ugly, but we handle scrolls somehow
             * anyway, so don't bother here..
             */
            if (event.preventDefault)
                    event.preventDefault();
    	event.returnValue = false;
    }
     
    /** Initialization code. 
     * If you use your own event management code, change it as required.
     */
    if (window.addEventListener){
    /** DOMMouseScroll is for mozilla. */
    window.addEventListener('DOMMouseScroll', wheel, false);
    /** IE/Opera. */
    window.onmousewheel = document.onmousewheel = wheel;
    }
     
    function handle(delta) {
     
        if (delta < 0) {
     
            if (document.querySelector("ul").children[0].childNodes[1].className == "active"){
                scrolldown(first, 0, 1000)    
     
            } else if (document.querySelector("ul").children[1].childNodes[1].className == "active"){
                scrolldown(second, 1, 1000)     
     
            } else if (document.querySelector("ul").children[2].childNodes[1].className == "active"){
                scrolldown(third, 2, 1000)
     
            } else if (document.querySelector("ul").children[3].childNodes[1].className == "active"){
                scrolldown(four, 3, 1000)
            }
     
        } else {
     
            if (document.querySelector("ul").children[1].childNodes[1].className == "active"){
                scrollup(tete, 1, 1000) 
     
            } else if (document.querySelector("ul").children[2].childNodes[1].className == "active"){
                scrollup(first, 2, 1000)
     
            } else if (document.querySelector("ul").children[3].childNodes[1].className == "active"){
                scrollup(second, 3, 1000)
     
            } else if (document.querySelector("ul").children[4].childNodes[1].className == "active"){
                scrollup(third, 4, 1000)    
            }
     
        }
     
    }
     
    function scrolldown(e, i, s){
     
        document.querySelector("ul").children[i].childNodes[1].className = "desactive"
        document.querySelector("ul").children[i+1].childNodes[1].className = "active"
     
        var page = $(e); // Page cible
        var speed = s; // Durée de l'animation (en ms)
        $('html, body').animate( { scrollTop: $(page).offset().top }, speed ); // Go
        return false
     
    }
     
     
    function scrollup(e, i, s) {
     
        document.querySelector("ul").children[i].childNodes[1].className = "desactive"
        document.querySelector("ul").children[i-1].childNodes[1].className = "active"
     
        var page = $(e); // Page cible
        var speed = s; // Durée de l'animation (en ms)
        $('html, body').animate( { scrollTop: $(page).offset().top }, speed ); // Go
        return false
    }

  2. #2
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 714
    Points : 1 598
    Points
    1 598
    Par défaut
    jour

    de nos jour c'est devenu plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function wheele(e){
     
    e.preventDefault();
    var delta=e.deltaY
    handle(delta)
    }
     
     
    addEventListener("load", function(){
    document.body.addEventListener("wheel",wheele, false);
    Plus vite encore plus vite toujours plus vite.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2012
    Messages : 161
    Points : 103
    Points
    103
    Par défaut C'est top
    Merci beaucoup pour le coup de main, le code final pour ceux qui souhaiteraient faire mumuse avec le scroll

    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
     
    if (window.addEventListener) {
    	// IE9, Chrome, Safari, Opera
    	window.addEventListener("mousewheel", wheel, false);
    	// Firefox
    	window.addEventListener("DOMMouseScroll", wheel, false);
    }
    // IE 6/7/8
    else window.attachEvent("onmousewheel", wheel);
     
    function wheel(event){
        var e = window.event || e;
        if (event.wheelDelta) { /* IE/Opera. */
                    delta = event.wheelDelta/120;
            } else if (event.detail) { /* Mozilla case. */
     
                   delta = -event.detail/3;
            }
            if (delta)
                    handle(delta);
     
            if (event.preventDefault)
                    event.preventDefault();
    	event.returnValue = false;
    }
     
    function handle(delta) {
     
        if (delta < 0) {
        ////// action lorsque l'on scroll vers le bas//////////           
        } else {
        ////// action lorsque l'on scroll vers le haut//////////        
        }
     
    }

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

Discussions similaires

  1. Utilisation d'un event Handle win32
    Par Zhitoune dans le forum Débuter
    Réponses: 13
    Dernier message: 06/11/2009, 17h42
  2. [AC-2003] utilisation de mouse event?
    Par chuspyto dans le forum IHM
    Réponses: 0
    Dernier message: 04/11/2009, 19h27
  3. Utilisation de Custom Events
    Par georges_jung dans le forum Flex
    Réponses: 3
    Dernier message: 25/12/2008, 17h40
  4. Comment utiliser le Post-Event
    Par alen dans le forum Visual C++
    Réponses: 4
    Dernier message: 16/09/2008, 11h19
  5. Réponses: 0
    Dernier message: 25/02/2008, 13h53

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