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 :

Jquery et scroll


Sujet :

jQuery

  1. #1
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut Jquery et scroll
    Bonjour,

    J'ai programmé un petit script pour un site web. Ce script gère un plan d'un hameau qui est affiché dans une iframe.

    Le script marche bien sous Firefox et Ie mais pas sous chrome ni Mac (je ne sais pas quel navigateur).

    Le problème vient de cette fonction qui me déplace le plan avec les scroll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function bouge(x,y)
    {
     
    plan.document.documentElement.scrollLeft = plan.document.documentElement.scrollLeft + x;	
    plan.document.documentElement.scrollTop = plan.document.documentElement.scrollTop + y;
    			bougeminiature(plan.document.documentElement.scrollLeft,plan.document.documentElement.scrollTop);
     
    				plan.$('#coordxvue').val(plan.document.documentElement.scrollLeft);
    				plan.$('#coordyvue').val(plan.document.documentElement.scrollTop);
     
    }
    J'ai essayer de remplacer par
    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
     
    function bouge(x,y)
    {
     
     
    alert(self.$('#plan').scrollLeft());
     
    posx=self.$('#plan').scrollLeft()+x;
    posy=self.$('#plan').scrollTop()+y;
     
    alert(self.$('#plan').scrollLeft()+" - "+self.$('#plan').scrollTop());
     
    $('#plan').scrollLeft(posx);
    $('#plan').scrollTop(posy);
     
     
    				bougeminiature(plan.document.documentElement.scrollLeft,plan.document.documentElement.scrollTop);
     
    				plan.$('#coordxvue').val(plan.document.documentElement.scrollLeft);
    				plan.$('#coordyvue').val(plan.document.documentElement.scrollTop);
     
     
    		}
    mais cela ne marche pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(self.$('#plan').scrollLeft());
    me renvoie 0 alors que le plan est centré dans ma frame, donc scrollleft ne vaut pas 0.

    Cela fait deux jours que je galère. Je pensais qu'en passant par JQUERY pour les scroll, cela me résoudrait les problèmes de navigateurs...

    Si quelqu'un a une idée...
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    pour les navigateurs de la famille webkit (chrome et safarie) le scroll est recupéré dans document.body et pour les autres dans document.documentElement il faudrait faire un teste de navigateurs et adapter la fonctionselon le navigateur.

  3. #3
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    ha lala...

    C'est si simple des fois...

    Je te remercie beaucoup, je n'avais pas trouvé cette information.
    Je vais testé cela ce soir.
    Je marquerai résolu si ça marche...merci beaucoup

  4. #4
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Ca ne me dit pas pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.$('#plan').scrollLeft()
    me renvoie 0.... JQUERY se charge de la différence entre navigateurs non?

  5. #5
    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
    Billets dans le blog
    20
    Par défaut
    $('#plan'), ça correspond à quoi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    plan.document.documentElement.scrollLeft
    =
    $('#plan').scrollLeft()

    la première marche, pas la seconde...
    plan est une frame.

    Merci d'avoir déplacer le sujet, j'avais pas trouvé le forum jquery...

  7. #7
    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
    Billets dans le blog
    20
    Par défaut
    plan.document.documentElement.scrollLeft
    =
    $('#plan').scrollLeft()
    Ca c'est un peu présomptueux comme affirmation

    Si je suppose bien à quoi correspondent les éléments, plan serait une iframe.
    Ce qui signifie que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plan.document.documentElement
    correspond au contenu de cette iframe (qui peut donc avoir un scrollLeft), alors que
    correspond à la balise iframe, qui est un élément remplacé et donc pour laquelle scrollLeft n'existe pas.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    j'ai bien compris que $('#plan') n'était pas égal à plan.document.getelementbyID,
    j'avais déjà posté un message sur un sujet similaire.

    J'ai parcouru le web et votre site,
    et je lis à chaque fois :
    $('#nomframe').scrollLeft();

    j'en conclus donc que c'est la bonne syntaxe en jquery et que cela devrait me renvoyer le scrollLeft...

  9. #9
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    je crois deviner où tu veux en venir. scrollLeft est une propriété CSS en jquery,
    non?
    Il le traite comme top et left?

    ()

  10. #10
    Membre averti
    Homme Profil pro
    webmaster réparateur installateur infographiste , ... un peu tout en rase campagne
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : webmaster réparateur installateur infographiste , ... un peu tout en rase campagne
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut
    Salut Darkyl !
    essaies ça, on ne sais jamais ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function bouge(x,y){
    	var elt=($.browser.safari)?plan.document.body:plan.document.documentElement;
    	elt.scrollLeft+=x;
    	elt.scrollTop+=y;
    	bougeminiature(elt.scrollLeft,elt.scrollTop);
    	plan.$('#coordxvue').val(elt.scrollLeft);
    	plan.$('#coordyvue').val(elt.scrollTop);
    }

  11. #11
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Merci Jérémie,

    Cette solution marche très bien. J'ai mis à jours et ça marche nickel sur IE, FF et chrome. J'ai pas pu tester d'autre navigateur.

    Tu vois quand tu veux .

    Cela ne répond toujours pas à ma question:

    Comment avec JQUERY récupérer la valeur d'un scroll d'une page et comment lui en affecter...?

    Sans passer par la détection de navigateur car j'ai lu que cette détection n'était pas forcément sûr à 100% .

    Même si tu te sers de JQUERY pour la détection...
    Peut être jquery ne permet pas l'accés au scroll.

    Mais ta solution marche très bien, elle est élégante et concise, bref j'aurais pas pu l'inventer...
    Merci encore.

    Je vais attendre de voir si on me répond à ma question sur JQUERY avant de mettre résolu.

  12. #12
    Membre averti
    Homme Profil pro
    webmaster réparateur installateur infographiste , ... un peu tout en rase campagne
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : webmaster réparateur installateur infographiste , ... un peu tout en rase campagne
    Secteur : Services de proximité

    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut
    Comment avec JQUERY récupérer la valeur d'un scroll d'une page et comment lui en affecter...?
    si tu passes par des iframes tu ne peux pas, jQuery récupèrera le noeud correspondant à ta frame, mais pas le code de la page qu'elle contient (enfin je crois)

    Sans passer par la détection de navigateur car j'ai lu que cette détection n'était pas forcément sûr à 100% .
    Ah ? je ne suis pas au courant, mais sinon, pour detecter le navigateur, il y a plusieurs techniques (certaines fonctions ou éléments ne sont pas tout fait identiques ou pas placé au même endroit, donc en faisant des tests dessus.

    un petit résolu ?

  13. #13
    Membre éclairé
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    oui un petit résolu, mais c'est bien parce que c'est toi.
    D'accord je passerai plus (ou moins) par des frames.

    AJAX me voilà.

    Merci pour tes réponses et merci à BOVINO aussi pour son amorce de réflexion.

    Je pensais JQUERY capable de la même chose que javascript sans passer par la syntaxe habituel, Qu'il donnait accès au même propriétés . Mais c'est une réflexion de novice, donc surement fausse.

    Merci encore

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

Discussions similaires

  1. scroll infini jquery
    Par linuxien_tun dans le forum jQuery
    Réponses: 2
    Dernier message: 26/12/2011, 11h16
  2. Scroll personnalisé en jquery
    Par Sakura.ha dans le forum jQuery
    Réponses: 2
    Dernier message: 06/11/2011, 23h09
  3. Popup avec JQuery et scroll intempestif
    Par basket dans le forum jQuery
    Réponses: 2
    Dernier message: 19/01/2011, 17h06
  4. [jquery] Faire un simple scroll pour "haut de page"
    Par Tchupacabra dans le forum jQuery
    Réponses: 2
    Dernier message: 11/02/2008, 11h29

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