0
votes

Comment puis-je zoomer HTML sur le bouton Cliquez?

J'essaie de fournir une fonction sur une page HTML avec laquelle je peux zoomer et sortir du texte.

J'ai déjà essayé avec tous les navigateurs disponibles. Voici mon code: p>

p>

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        #zoomtext
        {
            transform: scale(1);
            transition: transform 0.2s ease-in-out;
        }
        </style>
        <script>
        window.addEventListener("load", function()
        {
            var zoom = 1;
            var zoomStep = 0.2;
        });
        document.getElementById("zoomIn").addEventListener("click",function(){zoom += zoomStep; document.getElementById("zoomtext").style.transform = "scale("+zoom+")";});
        document.getElementById("zoomOut").addEventListener("click",function(){if(zoom > zoomStep){zoom -= zoomStep; document.getElementById("zoomtext").style.transform = "scale("+zoom+")";}});
        </script>
    </head>
    <body>
        <button id="zoomOut">-</button>
        <button id="zoomIn">+</button>
        <article>
            <section id="zoomtext">
                <p>This is a text that I want to be able to zoom in and out by means of the two buttons indicating plus and minus.</p>
            </section>
        </article>
    </body>
</html>


1 commentaires

Vous devez soit exécuter le script sur le document prêt à l'emploi, soit après avoir ajouté le code HTML à la page - au moment où les boutons n'existent pas lorsque vous faites votre getElementbyID car vous utilisez simplement le script de l'en-tête.


3 Réponses :


1
votes
  • Ajouter script code> à la fin de corps code> li>
  • Attribuer zoom, zoomstep code> variables en dehors de l'événement Callback Li>

    p>

    <!DOCTYPE html>
    <html>
    
    <head>
      <style type="text/css">
        #zoomtext {
          transform: scale(1);
          transition: transform 0.2s ease-in-out;
        }
      </style>
    </head>
    
    <body>
      <button id="zoomOut">-</button>
      <button id="zoomIn">+</button>
      <article>
        <section id="zoomtext">
          <p>This is a text that I want to be able to zoom in and out by means of the two buttons indicating plus and minus.</p>
        </section>
      </article>
    
      <script>
        var zoom = 1;
        var zoomStep = 0.2;
    
        document.getElementById("zoomIn").addEventListener("click", function() {
          zoom += zoomStep;
          document.getElementById("zoomtext").style.transform = "scale(" + zoom + ")";
        });
        document.getElementById("zoomOut").addEventListener("click", function() {
          if (zoom > zoomStep) {
            zoom -= zoomStep;
            document.getElementById("zoomtext").style.transform = "scale(" + zoom + ")";
          }
        });
      </script>
    
    </body>
    
    </html>

0 commentaires

1
votes

Le problème avec votre code est que zoom et zoomstep ne sont jamais évalués. Le premier écouteur d'événement vient de créer une fonction, mais le code à l'intérieur de celui-ci n'est jamais exécuté.

Voir un code de travail ici: https://codepen.io/marc -Simplon / stylo / vqywyq? Éditeurs = 1010


0 commentaires

0
votes

Si vous devez régler le zoom de la fenêtre entière, cela pourrait ne pas être possible sans plug-in externe (voir Modification du niveau de navigateur Zoom )

Si vous souhaitez définir le zoom pour spécifiquement l'élément #ZOOMTEXT, vous pouvez utiliser l'attribut" ZOOM "CSS ( https://developer.mozilla.org/en-us/docs/web/css/zoom ), mais ce n'est pas standard. Une autre façon de gérer cela serait d'augmenter ou de diminuer l'attribut CSS de la taille de la police sur l'élément #ZOOMTEXT: P>

document.getElementById("zoomtext").style.fontSize = '12px'


0 commentaires