{"id":21770,"date":"2023-12-23T09:01:41","date_gmt":"2023-12-23T08:01:41","guid":{"rendered":"https:\/\/fran.cosmobuzz.es\/?p=21770"},"modified":"2024-01-04T17:07:10","modified_gmt":"2024-01-04T16:07:10","slug":"crear-animaciones-con-javascript-en-wordpress","status":"publish","type":"post","link":"https:\/\/fran.cosmobuzz.es\/en\/crear-animaciones-con-javascript-en-wordpress\/","title":{"rendered":"Crear animaciones con JavaScript en WordPress"},"content":{"rendered":"<p class=\"has-medium-font-size\">Las animaciones en una pagina web son una parte extra al contenido, un efecto que puede aportar algo de originalidad a una p\u00e1gina en concreto, haci\u00e9ndola m\u00e1s llamativa para el usuario.<\/p>\n\n\n\n<p>En este caso voy a poner un par de ejemplos para que prob\u00e9is en vuestra p\u00e1gina. Las instrucciones estan m\u00e1s bien enfocadas a usarlas en el tema Generatepress o Astra, pero se puede insertar en cualquier sitio WordPress.<\/p>\n\n\n\n<h2 class=\"gb-headline gb-headline-4feecf8c gb-headline-text\"><strong>1er Efecto<\/strong>: el objeto se aparece suavemente al cargar la p\u00e1gina<\/h2>\n\n\n\n<p>En el caso de WP, aseg\u00farate de que tu elemento tenga una clase espec\u00edfica, por ejemplo, desde un bloque de imagen &#8211; Avanzado &#8211; Clases CSS: <code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#179108\" class=\"has-inline-color\">mi-elemento-animado<\/mark><\/code><\/p>\n\n\n\n<pre class=\"wp-block-code has-base-3-color has-contrast-2-background-color has-text-color has-background\"><code>&lt;img class=&quot;mi-elemento-animado alignnone wp-image-21779 size-medium&quot; src=&quot;https:\/\/fran.cosmobuzz.es\/wp-content\/uploads\/2023\/12\/night-9061_java-1-300x250.gif&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;250&quot; \/&gt;<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\"><em>Estructura en html<\/em><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Agrega estilos CSS desde el personalizador para inicialmente ocultar el elemento y luego aplicar una transici\u00f3n suave en la propiedad de opacidad:<\/p>\n\n\n\n<pre class=\"wp-block-code has-base-3-color has-contrast-2-background-color has-text-color has-background\"><code>\/* Transici\u00f3n suave de 1 segundo para cambiar la opacidad *\/\n.mi-elemento-animado {\n    opacity: 0; \/* Inicialmente establece la opacidad en 0 para ocultar el elemento *\/\n    transition: opacity 1s ease-in-out; \n}\n\n\/* Cuando se aplica la clase \"mostrar\", la opacidad se establece en 1, revelando el elemento *\/\n.mi-elemento-animado.mostrar {\n    opacity: 1; \n}<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Puedes usar JavaScript para a\u00f1adir la clase \u00abmostrar\u00bb al elemento despu\u00e9s de que la p\u00e1gina se haya cargado. Agrega el siguiente c\u00f3digo en el pie de p\u00e1gina atrav\u00e9s de un hook (gancho) o usando el plugin <strong><a href=\"https:\/\/wordpress.org\/plugins\/wp-headers-and-footers\/\" target=\"_blank\" rel=\"noreferrer noopener sponsored nofollow\">Insert Headers And Footers<\/a><\/strong> si tu tema no dispone de esta funcionalidad.<\/p>\n\n\n\n<p class=\"has-text-align-center has-base-2-color has-text-color has-background\" style=\"background-color:#137952\"><strong>Nota:<\/strong> si usas un hook debes colocarlo en wp-footer y si usas el plugin insertalo en la zona Scripts in Footer<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/wp-headers-and-footers\/assets\/screenshot-2.gif?rev=2560429\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><em>Ejemplo en plugin<\/em> (s\u00f3lo para el script)<\/figcaption><\/figure>\n\n\n\n<p>C\u00f3digo JavaScript envuelto en HTML:<\/p>\n\n\n\n<pre class=\"wp-block-code has-base-3-color has-contrast-2-background-color has-text-color has-background\"><code>&lt;script type=\"text\/javascript\"&gt;\n    document.addEventListener('DOMContentLoaded', function() {\n        var elemento = document.querySelector('.mi-elemento-animado');\n        elemento.classList.add('mostrar');\n    });\n&lt;\/script&gt;<\/code><\/pre>\n\n\n\n<p>Esto garantiza que la clase \u00abmostrar\u00bb se a\u00f1ada al elemento despu\u00e9s de que el DOM se haya cargado. Guarda tus cambios y verifica que la animaci\u00f3n funcione correctamente al cargar la p\u00e1gina. Puedes ajustar la duraci\u00f3n de la transici\u00f3n y otros estilos seg\u00fan tus necesidades.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"gb-headline gb-headline-dd67d632 gb-headline-text\"><strong>2\u00ba Efecto<\/strong>: Animaci\u00f3n al hacer scroll<\/h2>\n\n\n\n<p>En este caso, los pasos a seguir ser\u00e1n id\u00e9nticos que en el efecto anterior, s\u00f3lo debemos de cambiar el c\u00f3digo.<\/p>\n\n\n\n<p>Dentro del bloque de imagen en Avanzado &#8211; Clases CSS:  <code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#457e0a\" class=\"has-inline-color\">animacion-scroll<\/mark><\/code><\/p>\n\n\n\n<p>Agrega estilos CSS para la animaci\u00f3n. En este ejemplo, usaremos la clase fade-in :<\/p>\n\n\n\n<pre class=\"wp-block-code has-base-3-color has-contrast-2-background-color has-text-color has-background\"><code>\/* Agrega este estilo a tu archivo de estilo CSS o en el Personalizador de WordPress *\/\n.animacion-scroll {\n  opacity: 0;\n  transform: translateY(20px);\n  transition: opacity 1s ease, transform 1s ease;\n}\n\n.animacion-scroll.fade-in {\n  opacity: 1;\n  transform: translateY(0);\n}<\/code><\/pre>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Agrega el siguiente Script en el hook o utiliza el plugin <strong>Insert Headers And Footers<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code has-base-3-color has-contrast-2-background-color has-text-color has-background\"><code>&lt;script&gt;\ndocument.addEventListener('DOMContentLoaded', function () {\n  \/\/ Encuentra el elemento que deseas animar\n  var animatedElement = document.querySelector('.animacion-scroll');\n\n  function isElementInViewport(el) {\n    var rect = el.getBoundingClientRect();\n    return (\n      rect.top &gt;= 0 &amp;&amp;\n      rect.left &gt;= 0 &amp;&amp;\n      rect.bottom &lt;= (window.innerHeight || document.documentElement.clientHeight) &amp;&amp;\n      rect.right &lt;= (window.innerWidth || document.documentElement.clientWidth)\n    );\n  }\n\n  function fadeInOnScroll() {\n    if (isElementInViewport(animatedElement)) {\n      animatedElement.classList.add('fade-in');\n      \/\/ Desregistra el evento despu\u00e9s de que la animaci\u00f3n ha ocurrido una vez\n      window.removeEventListener('scroll', fadeInOnScroll);\n    }\n  }\n\n  \/\/ Registra el evento de desplazamiento\n  window.addEventListener('scroll', fadeInOnScroll);\n\n  \/\/ Activa la funci\u00f3n al cargar la p\u00e1gina\n  fadeInOnScroll();\n});\n&lt;\/script&gt;\n<\/code><\/pre>\n\n\n\n<p>Este script agrega la clase <strong>fade-in<\/strong> al elemento cuando est\u00e1 en el viewport, lo que activar\u00e1 la animaci\u00f3n CSS.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Tutorial Animacion JavaScript en Generatepress\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/4dWv0Pd0EvQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\"><em>Ejemplo completo en Generatepress<\/em> Pro<\/figcaption><\/figure>\n\n\n\n<p>Con este par de animaciones puedes conseguir un efecto sutil en tu web sin necesidad de instalar maquetadores visuales como elementor o divi.<br>Recuerda cada cada animaci\u00f3n requiere de su propio c\u00f3digo, es decir, si pones la clase CSS de cualquiera de los ejemplos anteriores <code>mi-elemento-animado<\/code>  o  <code>animacion-scroll<\/code> en una imagen o texto, deber\u00edas hacer un c\u00f3digo nuevo tanto en CSS como en JavaScript para poder aplicarlo a otro elemento de la p\u00e1gina.<\/p>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":21779,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[196],"tags":[195,222],"_links":{"self":[{"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/posts\/21770"}],"collection":[{"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/comments?post=21770"}],"version-history":[{"count":0,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/posts\/21770\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/media\/21779"}],"wp:attachment":[{"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/media?parent=21770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/categories?post=21770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fran.cosmobuzz.es\/en\/wp-json\/wp\/v2\/tags?post=21770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}