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 :

persister la position d'une scrollbar sur un div [Fait]


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut persister la position d'une scrollbar sur un div
    Bonjour à tous,
    Tout est dans le titre : je présente sur une page une visionneuse de photos, avec un div qui contient les miniatures des images. Ce div est présenté sous la forme d'une longue pellicule, avec donc un scroll vertical.

    J'ai plusieurs contrôles sur la page qui peuvent générer un post back, et je veux garder la position du scroll de ce div. Et j'ai pas trouvé grand chose pour faire ca... Voici ce que j'ai fait pour le moment :

    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
     
    <input id="scrollHold" type="hidden" /> // pour récupérer la valeur du scroll
     
     function RecupPositionScroll()
      {
         document.getElementById("scrollHold").value = document.getElementById("Panel5").scrollTop;             
    // Ca ca marche bien, je récupère bien la valeur du scroll           
      }
     
      function DeplacementScrollPositionAvantPostBack()
      {
        var y = document.getElementById("scrollHold").value;
        alert(y);
        document.getElementById("panel5").top = y; // c'est ici mon problème.
    // Comment affecter la valeur du scroll?
      }
    Donc j'ai 2 soucis :
    1) Comment faire bouger le scroll de mon div pour lui affecter la valeur que je veux?
    2) Comment persister la valeur que je met dans ma variable hidden lors d'un postback?

    Merci de vos réponses.

    Nixar

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    une petite recherche sur le forum

    http://www.developpez.net/forums/d32...ar-pagination/

  3. #3
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Bonjour et merci pour ta réponse ,
    après consultation du lien que tu m'as donné, j'ai fait ça en C# (comme mon panel se charge dynamiquement et que je bosse en c#):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                      ImageButton Miniature = new ImageButton();
                        Miniature.ID = "#" + Ligne["PhotoId"].ToString();
                        Miniature.ImageUrl = Ligne["PhotoVignettePath"].ToString();
                        Miniature.ImageAlign = ImageAlign.Middle;
                        Miniature.Command += new CommandEventHandler(Miniature_Command);
                        Miniature.CommandArgument = Ligne["PhotoId"].ToString() + ";" + Ligne["PhotoName"].ToString() + ";" + PhotoAnglaise[0]["PhotoName"].ToString()+ ";" + Ligne["PhotoVignettePath"].ToString() + ";" + Ligne["PhotoPrice"].ToString();
                        Miniature.CssClass = "MarginTopBottom20px NoPadding Miniature";
                        Miniature.PostBackUrl = "#" + Ligne["PhotoId"].ToString();
                        Conteneur.Controls.Add(Miniature);
    EN fait j'ai donné le nom du contrôle à la propriété PostBackUrl. Et ca marche bien sous IE.... Lors du postback, le scroll se met à l'ancre voulue.

    Mais pas sous Firefox . Pourquoi? Après quelques recherches, j'ai vu que cette propriété utilisait du côté client la fonction js WebForm_DoPostBackWithOptions, et l'un des arguments étant l'url après le postback. Je comprends pas pourquoi ca ne marche pas sous firefox.

    Je ne suis pas un grand spécialiste des événements clients et de leur gestion, donc pas vraiment de JS....

    Merci d'avance de ta réponse, je patauge un peu...


    Cordialement,

    Nixar

  4. #4
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut Postback et ancres
    BOnjour,
    Toujours dans la continuité de ce post, je reviens vers vous car pas résolu...
    Pour rappel : je cherche à persister la position du scroll d'un div après un postback.

    Pour le moment, j'arrive à repérer le contrôle qui génère le postback et j'utilise une propriété toute faite de C# qui s'appelle "PostBackurl" et qui permet de spécifier l'url de postback lors de la validation d'un input. Ca marche sous IE et pas sous FF.

    Voilà ce qu'asp.NET me sort côté HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input id="#236" class="MarginTopBottom20px NoPadding Miniature" align="middle" type="image" style="border-width: 0px;" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("#236", "", false, "", "#236", false, false))" src="Photos/TestDeGrosDebit/TestDeGrosDebit/01102008/TestDeGrosDebit/Vignettes/nat.jpg" name="#236"/>
    Voilà la traduction asp.net de mon histoire de postbackUrl. Sauf que, pourquoi ca marche pas sous FF? Qu'en pensez vous?

    Voici l'adresse de test pour que vous voyez le le souci :

    http://www.artsgraphics.fr/PreProd01...eGrosDebit#243
    Déjà vous voyez qu'il y a une ancre dans l'URL que je vous envoie, et que FF ne la prend pas en compte.
    La vous descendez le scroll des images, et vous cliquez sur une miniature. Tout va se recharger, et le scroll revenir au début.... Si vous êtes sous FF. Sous IE, il se replace.

    Merci de vos réponses !!!

    Cordialement,

    Nixar

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2007, 09h34
  2. Réponses: 1
    Dernier message: 08/01/2007, 16h47
  3. [c++] Obtenir la position d'une fenêtre sur l'écran
    Par Silverstone dans le forum Windows
    Réponses: 2
    Dernier message: 05/09/2006, 16h11
  4. Position d'une fenêtre sur l'écran (left, top)
    Par Daimonji dans le forum MFC
    Réponses: 9
    Dernier message: 18/12/2005, 14h57
  5. Position d'une ScrollBar dans un TRichEdit (ou TMemo)
    Par Troll dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/02/2005, 15h18

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