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 :

Cadence de défilement différent sur FF que sur Chrome


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Cadence de défilement différent sur FF que sur Chrome
    Salut tout le monde.

    Vu que je suis débutant, je suis devant un souci que je ne comprends pas.

    J'ai un script que voici :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <script type="text/javascript">
            var STARTINGOPACITY = 40;
            var SCROLLTIMER = 3;
            var SCROLLSPEED = 3;
            // handles manual scrolling of the content //
            function scrollContent(id, dir) {
                var div = document.getElementById(id);
                clearInterval(div.timer);
                var sections = div.getElementsByTagName('div');
                var length = sections.length;
                var limit;
                if (dir == -1) {
                    limit = 0;
                } else {
                    if (length > 1) {
                        limit = sections[length - 1].offsetTop;
                    } else {
                        limit = sections[length - 1].offsetHeight - div.parentNode.offsetHeight + 20;
                    }
                }
                //div.style.opacity = STARTINGOPACITY * .01;//
                //div.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';//
                div.timer = setInterval(function() { scrollAnimate(div, dir, limit) }, SCROLLTIMER);
            }
     
            function scrollAnimate(div, dir, limit) {
                div.style.top = div.style.top || '0px';
                var top = div.style.top.replace('px', '');
                if (dir == 1) {
                    if (limit - Math.abs(top) <= SCROLLSPEED) {
                        cancelScroll(div.id);
                        div.style.top = '-' + limit + 'px';
                    } else {
                        div.style.top = top - SCROLLSPEED + 'px';
                    }
                } else {
                    if (Math.abs(top) - limit <= SCROLLSPEED) {
                        cancelScroll(div.id);
                        div.style.top = limit + 'px';
                    } else {
                        div.style.top = parseInt(top) + SCROLLSPEED + 'px';
                    }
                }
            }
            // cancel the scrolling on mouseout //
            function cancelScroll(id) {
                var div = document.getElementById(id);
                //div.style.opacity = 1;//
                //div.style.filter = 'alpha(opacity=100)';//
                clearTimeout(div.timer);
            }
        </script>
    Ce script permet de faire une sorte de Scroll à l'intérieur de la page.
    La vitesse de défilement sur FF est correct avec ces paramettres. Mais sur Chrome, avec les mêmes paramettres, elle est deux fois plus rapides et je ne trouve pas d'explication logique.

    Pouvez m'aider ?

    Merci d'avance.

    Ps : j'espère ne pas avoir fait trop de faute.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Ben tu mets un timer de 3ms, alors que souvent le temps d'éxécution peut-être 5ms sous Firefox. Chrome était très véloce en JS exécutera ta méthode en 2ms. Ce qui fait que ça sera plus fluide. Si tu veux une animation fluide base toi sur un delay de 20ms et un pas de 15px, ça paraitra quand même fluide tu verras

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci

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

Discussions similaires

  1. [Autre] Le HTML5, entre 6 et 10 fois moins rapide sur mobiles que sur bureau
    Par Gordon Fowler dans le forum Publications (X)HTML et CSS
    Réponses: 29
    Dernier message: 04/06/2012, 10h46
  2. Le HTML5, entre 6 et 10 fois moins rapide sur mobiles que sur bureau
    Par Gordon Fowler dans le forum Balisage (X)HTML et validation W3C
    Réponses: 29
    Dernier message: 04/06/2012, 10h46
  3. Réponses: 10
    Dernier message: 13/08/2009, 09h57
  4. Réponses: 1
    Dernier message: 26/07/2009, 15h01
  5. Réponses: 3
    Dernier message: 16/02/2007, 12h35

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