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 :

scrolltop pour positionner le scrollbar à l'endroit d'une div


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut scrolltop pour positionner le scrollbar à l'endroit d'une div
    Hello,

    J'ai 2 scripts qui fonctionnent séparément sans problème mais je voudrais combiner ces 2 scripts parceque séparément je n'arrive pas à l'effet voulu

    le premier, trouve bien la position du div repère qui est hook dans la page et se place à 120px du haut pour le header fix qui est de 120px, le problème sur mobile le header fixe est de 70px donc j'ai un décalage

    premier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var topOfElement = document.querySelector('#hook').offsetTop - 120;
    window.scroll({ top: topOfElement, behavior: "smooth" });

    Second :
    Le second à un autre problème parceque il utilise pas le repère hook ce qui rend le responsive mobile pas précis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(function(){
        if (window.innerWidth < 880) {
           setTimeout(function(){
            window.scrollTo(0,170)
        },2000);
        } else {
           setTimeout(function(){
            window.scrollTo(0,490)
        },2000);
        }

    Je voudrais si il possible de combiner les 2, ou bien dans le second de lui dire que c'est à partir de hook qu'il faut mettre la position.

    Voilà si quelqu'un peut me venir en aide ça serait cool ;-)

    Marie

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Résolu en pure script sans css

    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
    var DELAY_READING = 4000; // 4 seconds = 4000; 10 seconds = 10000
    var DELAY_SCROLLING = 1500;
     
    var links = [ '#hook' ];
    var timerId = 0;
     
    delayLinks(0);
     
     
    function delayLinks( i ) {
      if( i >= links.length ) i = 0;
      scrollToLink( links[i] );
     
    }
     function scrollToLink( link ){
        if (window.innerWidth < 880) {
            selectLink = $( link );

  3. #3
    Membre confirmé
    Homme Profil pro
    OoW
    Inscrit en
    Juin 2019
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Ukraine

    Informations professionnelles :
    Activité : OoW

    Informations forums :
    Inscription : Juin 2019
    Messages : 140
    Points : 498
    Points
    498
    Par défaut
    \ô/
    Résolu en pure script sans css
    pas tout compris mais déjà mélanger javascript vanilla et jquery reste une mauvaise façon de procéder.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Hello c'est du Keerynilla je sais pas si c'est une mauvaise façon de procéder, mais mélanger des choses ça peut être sympa tu as essayé la glace à la vanille avec un râpé de bacons pas Kévin, le mélange est surprenant et ça marche bien.
    Merci pour ton aide.

    J'ai réduit le code le principal c'est que ça marche sur du PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var DELAY_READING = 4000; // 4 seconds = 4000; 10 seconds = 10000
     
    var links = [ '#hook' ];
     
    delayLinks(0);
     
     
    function delayLinks( i ) {
      if( i >= links.length ) i = 0;
      scrollToLink( links[i] );
     
    }
     function scrollToLink( link ){
        if (window.innerWidth < 880)
    Marie

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ajout d'un délais pour l'exécution et maintenant le résultat est parfait sur mobile et bureau, si ça peut quelqu'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    setTimeout( function() {var links = [ '#hook' ];
     
    delayLinks(0);
     
     
    function delayLinks( i ) {
      if( i >= links.length ) i = 0;
      scrollToLink( links[i] );
     
    }
     function scrollToLink( link ){
        if (window.innerWidth < 880) {
    	$('html, body').animate({

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 123
    Points : 44 922
    Points
    44 922
    Par défaut
    Bonjour,
    il est sensé faire quoi ton script incomplet ?
    À quoi te sert le rajout d'un setTimeout ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Il permet de placer le scrollbar automatiquement à un endroit précis comme une div, lors du chargement de la page avec un header fixed qui change de taille sur responsive, l'ajout du setTimeout permet au layerslider (qui est assez grand) de s'afficher avant que le scroll descend automatiquement sur le formulaire contact. Le tout a été adapté pour un module joomla 5

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 123
    Points : 44 922
    Points
    44 922
    Par défaut
    Il permet de placer le scrollbar automatiquement à un endroit précis comme une div, lors du chargement de la page ...
    il existe des méthodes bien plus adaptées et faites pour cela !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    document.addEventListener("DOMContentLoaded", () => {
      // le code à exécuter
    });
    son pendant en jQuey :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(document).ready(function() {
      // le code à exécuter
    });
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(function() {
      // le code à exécuter
    });
    pour le scroll vers un élément :
    ou via l'attribut autofocus, peut être déroutant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="saisie" value="valeur saisie" autofocus>

    Ressources :

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

Discussions similaires

  1. [Langage/Algorithme] un code pour deplacer un TImage et positionner les ScrollBars simultanement
    Par blondelle dans le forum C++Builder
    Réponses: 0
    Dernier message: 26/06/2013, 14h40
  2. ScrollTop pour un div
    Par nixonne dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/04/2006, 11h47
  3. [JScrollPane] positionnement des scrollbars
    Par Dnasty dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/03/2006, 14h46
  4. [HTTP] Questions d'un noob pour positionner du texte
    Par Soubi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/12/2005, 01h13
  5. Problème pour positionner une liste déroulante
    Par ouckileou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/09/2004, 01h05

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