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

jQuery Discussion :

Swipe avec avec Hammer.js


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut Swipe avec avec Hammer.js
    Bonjour !

    Je tente d'utiliser le swipe left pour décaler mon menu (grâce à Hammer.js).
    J'ai bien déclaré le fichier JS où se trouve la librairie Hammer.JS (j'ai du fouiller sur Google un plugin jQuery pour Hammer.JS, que j'ai trouvé et que j'ai inclus dans le même fichier que la librairie. La console ne s'affolant pas, je pense que ça fonctionne).
    J'ai donc testé le bon fonctionnement de la librairie avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (function($){
     
        var $sitePusher = $('.site-pusher');
        $sitePusher.hammer()
        .on('swipeleft', function(e){
                console.log('hello');
        })
     
    })(jQuery);
    et ça fonctionne ! La console m'affiche bien "hello" quand je fais un swipe sur le div qui englobe tout le contenu de la page.

    Mais lorsque je tente d'appliquer une transformation CSS à ce site pusher avec translateX... plus rien ne fonctionne. Aucun message de la console, mais aucun résultat après le swipe, rien ne se décale. Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (function($){
     
        var $sitePusher = $('.site-pusher');
        $sitePusher.hammer()
        .on('swipeleft', function(e){
              $sitePusher.animate({translateX: '-250px'}, 250);
        })
     
    })(jQuery);
    Je repète: mon menu se trouve à droite de mon site, ce qui explique pourquoi je décide de décaler mon site de -250px, pour qu'il se déplace à gauche et non pas à droite.

    Pourquoi ce code ne fonctionne pas? Faut-il appliquer la transformation autre part?
    Je vous remercie, très bon week end à tous !

    Edit: j'ai aussi essayé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (function($){
     
        var $sitePusher = $('.site-pusher');
        $sitePusher.hammer()
        .on('swipeleft', function(e){
             $sitePusher.animate({transform: 'translateX(-250px)'}, 250);
        })
     
    })(jQuery);
    étant donné que translateX n'est qu'une valeur de transform et non pas une propriété, j'ai rajouté le "transform", mais rien ne change.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Bonjour,

    As-tu essayé d'appliquer toi-même la transformation CSS directement sur l'élément, pour vérifier que ce n'est pas un problème CSS ?

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Bonjour,

    Oui, je viens juste de le faire, et l'ensemble de la page se décale bien vers la gauche (pour un transform: translateX(-250px); sur le site-pusher) et laisse apparaître le menu, comme souhaité. Je ne vois vraiment pas ce qui ne fonctionne pas dans le code jQuery...

    Edit: après un petit console.log('ok'); juste avant le $sitePusher.animate({transform: translateX('-250px')}, 250); et quand je fais un swipe, rien ne se passe et ça n'affiche même pas ok.

    Reedit: de plus en plus étrange... rien ne s'affiche sur la console de firefox, et après une vingtaine de swipe sur IE (on va dire que 1 swipe sur 6 fonctionne...), la console m'informe que "translateX" est indéfini... et plus particulièrement "jk"
    Voilà une petite capture :
    Nom : console.png
Affichages : 761
Taille : 55,3 Ko

    En fait il suffisait de mettre les parenthèses autour de la valeur translateX... c'est réglé. Par contre le swipe ne produit toujours rien et marche une fois sur 6 (testé sur mobile, il n 'y a rien non plus)

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    D'après ton erreur ton object animate ne dispose pas de la propriété que je veux utiliser, essaye de vérifier si tu as bien ta lib js qui se charge jquery.transform.js.

    http://github.com/louisremi/jquery.transform.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sitePusher.animate({transform: 'translateX(-250px)'}, 250);

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Dans ton code il manque les guillemets autour de translateX, du coup JS essaie de l'interpréter comme une fonction.

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Par défaut
    Sylvain, pour la capture oui mais j'ai rectifié comme je l'ai dit mais ça ne marchait pas.

    Mais headmax a trouvé la solution !! J'ai ajouté le transform à ma librairie Hammer et le swipe left marche nickel ! Merci énormément !!

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

Discussions similaires

  1. Requete sql avec avec colonne paramétrée
    Par Herveg dans le forum Sql*Plus
    Réponses: 1
    Dernier message: 26/10/2010, 16h33
  2. [DOM XML] Faire un tri avec avec un attribut
    Par Zaki_SDwin dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 31/03/2009, 01h21
  3. Excel, liaisons avec avec d'autres classeurs
    Par avigeilpro dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/02/2008, 18h08
  4. Union avec avec plusieurs select
    Par SmileAndFly dans le forum Langage SQL
    Réponses: 0
    Dernier message: 26/11/2007, 17h45
  5. Creation d'un fichier HTML avec AVEC
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/06/2007, 19h06

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