• Annonce ■ Texte défilant par CSS = fluidité


    Mardi 18 Mai 2021 à 22:03
    stormalo

    La balise <marquee> est souvent utilisée pour faire défiler un texte.
    Pourtant le résultat n'est pas  toujours agréable, le mouvement n'étant  pas fluide du tout, sauf peut être sur Edge. (La fonctionnalité marquee n'est pas standard. Elle est la propriété de Microsoft)

    Css donne un meilleur visuel, car le mouvement n'est jamais saccadé.

    Pour comparer un défilement simple, voir en ligne ou utilisez le code de cet exemple  dans la source d'un article brouillon.

    La propriété CSS animation est beaucoup plus efficace et riche en possibilités.

     

    Comment faire avec CSS :

    Un exemple ci-dessous, (texte défilant en vert) :
    Le lorem ipsum est une suite de mots sans signification utilisée à titre provisoire pour calibrer une mise en page.
    Qui après saisie dans l'éditeur, apparait dans le code source encadré des balises de paragraphe <p> et </p>

    1-  attribuer une class à l'élément p (une class avec le nom defile par exemple). Ce qui donne:
    <p class="defile"> Le lorem ipsum est une suite de mots sans signification utilis&eacute;e &agrave; titre provisoire pour calibrer une mise en page.</p>

    2- définir les propriétés css de cette class, en incluant la propriété  animation ainsi que la règle @keyframes qui fixera les coordonnées de translation (de début et de fin du défilement) .
    Règle  que je nomme ici "param".

    3- Il restera à regrouper ces instructions css dans une "feuille de style". 
    - soit entre des balises <style> et <style> ce qui correspond à une feuille de style qui est  intégrée à la page html (code source)
    - soit sans utiliser les balises <style>, il y a le fichier thème-css du blog, qui est une des feuilles de style externe au code source  (solution à privilégier, mais bon ...)

    En fait, en matière css, ça dépend des pratiques et du besoin de chacun.

    Pour cette démo, le code complet est ↓  

    <p class="defile"> Le lorem ipsum est une suite de mots sans signification utilis&eacute;e &agrave; titre provisoire pour calibrer une mise en page.</p>

    <style> 
    .defile {
    display: inline-block;                /* déclare le modèle de "boite en ligne" */
    padding-left: 100%;                 /* placement du texte défilant à droite du contenant  p  */
    white-space: nowrap;              /* pas de passage à la ligne */
    padding-right: 50px;                /* facultatif ; crée une attente à la réapparition */

    animation: param 20s infinite linear; 
    /* la durée de l'animation influe sur la vitesse de défilement  1s=Vmaxi  */

    }
    .defile:hover {         /* facultatif ; crée un arrêt au survol */
     animation-play-state: paused;
    }

    @keyframes param {
    0% {transform: translate(0,0);} 
     
    100% {transform: translate(-100%,0);}
    }
     

    </style>

     Schéma d'illustration

    Défilement fluide par CSS, sans <marquee>cool Remarque: les paramètres de la régle @keyframes ci-dessus correspondent à mon avis aux usages habituels de type "marquee". Une utilisation par copié/collé devrait suffire.
    Approximativement ça veut dire : à partir de la position de départ (0,0) ; jusqu’à la position finale (-100%,0)          

     (x,y)           horizontal   - ← 0  → +                vertical      ↓+    ↑-               clic       img-compteur

     

    Suites éventuelles en annexe (contenu évolutif )
    ICI ►  https://textup.fr/553200EJ 

     

     

    Samedi 9 Avril 2022 à 21:40
    Cyclo Club Sassenage

    Je viens de découvrir ce code qui est tout simplement SUPER!!!

    Merci Stormalo




    Vous devez être membre pour poster un message.