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

Angular Discussion :

Popup géante - scroller en haut


Sujet :

Angular

  1. #1
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 435
    Points
    2 435
    Par défaut Popup géante - scroller en haut
    Bonjour.

    J'ai un souci avec un composant type popup (NgbModal) assez grande (sa hauteur est 3~4 fois plus grande que celle de la page) que j'affiche en cliquant sur un bouton.
    Jusque là aucun souci, mais quand elle s'affiche, c'est sa partie basse qui apparaît, je dois scroller pour voir le haut du composant.

    Comment je peux faire en sorte que quand le popup s'affiche, ce soit le haut du composant qui apparaisse ?

    Dans le parent :
    Code homecomponent.ts : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        @ViewChild('popup_help') private popup_help: HelpComponent;
        openPopup() {
            const options = { size: 'xl', centered: true };
            this.popup_help.open(options);
        }

    Dans le composent Popup (HelpComponent) :
    Code helpcomponent.html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ng-template #help_popup let-modal>
    <!-- mon popup géant -->
    </ng-template>

    Code helpcomponent.ts : 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
    import { Component, Injectable, TemplateRef, ViewChild } from '@angular/core'
    import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'
     
    @Component({
      selector: 'porp-popup_help',
      templateUrl: './popup_help.component.html',
      styleUrls: ['./popup_help.component.scss']
    })
    @Injectable()
    export class HelpComponent{
        @ViewChild('help_popup') private modalContent: TemplateRef<HelpComponent>;
        private modalRef: NgbModalRef;
     
        constructor(private modalService: NgbModal) {}
     
        open(options: any) {
            this.modalRef = this.modalService.open(this.modalContent, options);
            this.modalRef.result.then();
        }
    }
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    est ce que tu peux mettre cette fonctionnalité sur stackblitz
    parceque là, comme ça c'est difficile !

  3. #3
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 435
    Points
    2 435
    Par défaut
    Bonjour.

    Effectivement, j'aurais du commencer par ça.
    Voici le lien : https://stackblitz.com/edit/angular-...component.html

    Cela dit, en essayant de reproduire le problème, j'ai trouvé la cause : c'est le bouton "fermer" en bas du popup qui prend le focus automatiquement, et qui force le scroll sur sa position.

    Du coup, la question que je me pose est est-ce qu'il y a moyen de ne pas forcer le focus sur ce bouton ?
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  4. #4
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    c'est pas plus ergonomique de mettre le scroll dans la modal et mettre la hauteur du modal en rapport avec l'ecran ?

  5. #5
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 435
    Points
    2 435
    Par défaut
    Bonne remarque, je vais mettre la scrollbar.

    Mais pour mon souci, j'ai pu m'en sortir en transformant un élément cliquable du haut de la popup en button avec autofocus. Il y a probablement une meilleure solution, mais ça fera l'affaire pour moi.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 119
    Points
    44 119
    Par défaut
    Bonjour,
    Il y a probablement une meilleure solution, mais ça fera l'affaire pour moi.
    celle proposée par dukoid, une modale ne devrait pas dépasser des limites de la fenêtre, cela ce règle facilement en CSS.

  7. #7
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    Janvier 2011
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : Janvier 2011
    Messages : 696
    Points : 2 435
    Points
    2 435
    Par défaut
    On est d'accord, mais ce n'est pas ça qui a pas résolu mon problème, puisque même en réduisant la hauteur de la popup, ça scrollait automatiquement vers son bas.
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

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

Discussions similaires

  1. popup: Empecher retour en haut de page
    Par yann123456 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/06/2009, 14h53
  2. Scroller le nœud d'un Jtree en haut
    Par Petzouille57 dans le forum Composants
    Réponses: 0
    Dernier message: 27/10/2008, 16h54
  3. popup sans remonter en haut de la page
    Par cancrat dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/08/2007, 15h03
  4. Fenetre Modal positionnement dans le haut de la popup
    Par ozzmax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2007, 15h11
  5. [FLASH 8] Boutons Haut et Bas pour scroller un textArea
    Par hedgehog dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 24/04/2006, 11h23

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