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 :

Scroll automatique infini


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Scroll automatique infini
    Bonjour à tous,

    Je suis en train de découvrir le javascript et je voulais savoir s'il était possible de faire un défilement de la page de haut en bas et une fois le bas atteint de bas en haut et ainsi de suite. Alors oui, j'ai bien fait les deux séparément et ils fonctionnent lorsque je les utilise de manière distincte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function st() {
          window.scrollBy(60,60);
          setTimeout('st()', 100);
        }
    function fin() {
          window.scrollBy(-40,-40);
          setTimeout('fin()', -100);
        }
    Cependant, lorsque je les utilise en même temps, je me retrouve avec une fenêtre spéciale épilepsie.
    Alors je ne sais pas si j'ai un problème de compréhension, si jamais mes fonctions s'exécutent à l'infini, si en javascript il m'est impossible d'effectuer ce type d'action...? Je ne comprends pas vraiment et mes recherches à ce propos restent infructueuses (à propos de javascript pas de mon incompréhension...).
    Si jamais vous avez un peu de temps à m'accorder, je vous en serai reconnaissante.
    Merci =)

  2. #2
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tu sembles avoir un léger problème de conceptualisation...

    Déjà, function st(), function fin(). Euh... st, c'est l'abbréviation de debut, c'est ça ?
    Sérieusement, essaye de garder une cohérence dans le nommage, ça pourra être utile à d'éventuels futurs collègues et c'est une bonne habitude à prendre.

    Ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout('fin()', -100);
    En dehors du fait que le premier argument doit être, de préférence, une référence à une fonction, évite de mettre une chaine de caractère, c'est pas très propre
    Mais surtout, tu attends que ta fonction soit appelée toutes les -100 millisecondes ?
    C'est une machine à remonter le temps ?

    Enfin, last but not least
    lorsque je les utilise en même temps, je me retrouve avec une fenêtre spéciale épilepsie
    Oui, c'est généralement ce qu'il se passe quand on essaye de faire à la fois monter et descendre un élément !
    Petit indice : il existe un truc spécifique à JavaScript (mais chut, ne le répète pas dans d'autres langages, ils risqueraient de copier) qui permet de créer des conditions qui en fonction d'un test (un exemple au hasard, si une page est arrivée en bas ou en haut du scroll) et qui permet de d'effectuer des actions différentes en fonction du résultat de ce test.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Merci de ta réponse,
    Euh... st, c'est l'abbréviation de debut, c'est ça ?
    Oui c'est mon start (navrée dans ma tête c'était logique >.<').
    J'ai cru que le 100 était le pourcentage de page auquel ma fonction s'arrêterait (maintenant que je te lis ça me semble des plus stupide... Encore plus que -100% d'une page a l'air d'un concept plutôt abstrait).
    Je vais revoir tout ça, rechercher la fonction dont tu me parles et je teste.
    Merci beaucoup!

  4. #4
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Pour le start, j'avais compris, rassure toi, c'est juste que pour une fonction, tu utilises une notation anglophone abrégée et pour l'autre, une notation francophone longue, d'où ma remarque sur la cohérence des notations. Tu peux choisir la convention que tu veux, chacun a ses préférences et aucune n'est à priori meilleure que l'autre, mais quand tu en as choisis une, il faut essayer de s'y tenir.

    Pour le -100, ce n'est pas un pourcentage mais une durée : setTimeout() est, comme son nom l'indique (et ce n'est manifestement pas à toi que je vais apprendre l'anglais ), une fonction de timing, le second argument est donc une durrée.

    Enfin, tu devras ensuite à chaque appel de la fonction faire un test sur l'état du scroll afin de déterminer s'il faut le remonter ou le baisser.
    Malheureusement, pour faire ce test, il faut faire des calculs et ce n'est pas gérable de façon triviale (ie, il n'y a pas de fonction prédéfinie pour ça), il va donc falloir te renseigner sur la façon dont tu peux le faire, mais on est là pour t'aider.

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut Pour inverser le sens de défilement
    Bonjour.
    Sans rentrer dans les problèmes de codification :
    Vous avez dû définir un pas qui permet d'avancer (ce pas permettant de modifier la marge à chaque itération).
    Quand la marge est au maximum, vous modifiez le sens de défilement en multipliant le pas par -1 (c'est ça le truc : le pas passera alternativement de l'état positif à l'état négatif X*-1 = -X, et ensuite -X * -1 = +X)
    Ainsi quand la marge est "négative" et atteint son maximum elle va progressivement revenir à zéro. Elle redeviendra ensuite négative, pour revenir à nouveau à zéro, et ainsi indéfiniment...
    Un carrousel d'images peut fonctionner de cette manière : les photos disparaissent à gauche, puis quand la dernière est atteinte, elles défilent dans l'autre sens, disparaissant à droite...
    Cdlt

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec jquery ca se fait en une seule ligne avec le callback ...

Discussions similaires

  1. Effectuer un scrolling automatique
    Par chandlerbing77 dans le forum Access
    Réponses: 1
    Dernier message: 24/08/2006, 17h44
  2. Scroll automatique d'un div
    Par keisuke dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 22/08/2006, 12h09
  3. Swing::scroll automatique à l'exécution
    Par cleger74 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/04/2006, 16h21
  4. Scroll automatique pendant DragAndDrop
    Par babas1 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 01/02/2006, 19h22
  5. Scroll automatique dans un JTextPane
    Par regbegpower dans le forum Composants
    Réponses: 9
    Dernier message: 11/11/2003, 09h24

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