🕷️ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 89 (from laksa184)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

ℹ️ Skipped - page is already crawled

📄
INDEXABLE
CRAWLED
22 days ago
🤖
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH0.8 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/
Last Crawled2026-04-02 19:15:58 (22 days ago)
First Indexed2025-09-25 00:22:09 (7 months ago)
HTTP Status Code200
Content
Meta TitleJavascript ejecutar cuando una etiqueta sea visible | Andros Fenollosa
Meta DescriptionSi quieres lanzar una función de JavaScript cuando se muestre una etiqueta de HTML... ¡Estas de suerte! Con el nuevo API Observables evitarás cálculos
Meta Canonicalnull
Boilerpipe Text
Si quieres lanzar una función de JavaScript cuando se muestre una etiqueta de HTML ... ¡Estas de suerte! Con el nuevo API Observables evitarás cálculos innecesarios como comprobar la posición del elemento DOM. Te enseño lo fácil que es implementarlo en la actualidad, sin recurrir al evento de scroll (scrollTop) u otras técnicas que malgastan la CPU del equipo. DEMO Cuando visualices el cuadrado se añadirá la clase '.cuadrado--rota' ¡Baja! 👇👇👇👇👇 HTML y CSS Antes hay que definir el elemento que queremos usar como disparador . Cuando sea visible en el viewport , o entre en la zona visible por el ojo del visitante, es cuando lanzaremos el código. El HTML del ejemplo anterior es un sencillo <div> . <div class="cuadrado"></div> Y su CSS contiene .cuadrado que le da forma y .cuadrado--rota que será añadido cuando sea visible dando la animación de rotación. .cuadrado { border: .2rem solid black; width: 10rem; height: 10rem; transition: 2s; margin: 0 auto; margin-top: 100rem; margin-bottom: 5rem; } .cuadrado--rota { transform: rotate(45deg); } Llega el momento de usar Observable . // Capturamos el elemento que deseamos observar const miCuadrado = document.querySelector('.cuadrado'); // Creamos un objeto IntersectionObserver const observerCuadrado = new IntersectionObserver((entries) => { // Comprobamos todas las intesecciones. En el ejemplo solo existe una: cuadrado entries.forEach((entry) => { // Si es observable, entra if (entry.isIntersecting) { // Añadimos la clase '.cuadrado--rota' miCuadrado.classList.add('cuadrado--rota'); } else { // En caso contrario quita la clase miCuadrado.classList.remove('cuadrado--rota'); } }); }); // Añado a mi Observable que quiero observar. En este caso el cuadrado observerCuadrado.observe(miCuadrado); Puedes simplificar la tarea usando FFNM , una herramienta propia que me ayuda a aplicar la misma lógica sin repetirme.
Markdown
[Andros Fenollosa ![Gato](https://andros.dev/static/img/header/cat.svg)](https://andros.dev/) - [es](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/) - [en](http://en.andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/) - [![](https://andros.dev/static/img/header/pencil.svg) Blog Blog](https://andros.dev/blog/) - [![](https://andros.dev/static/img/header/courses.svg) Cursos Cursos](https://andros.dev/cursos/) - [![](https://andros.dev/static/img/header/books.svg) Libros Libros](https://andros.dev/books/) - [![](https://andros.dev/static/img/header/talks.svg) Charlas Charlas](https://andros.dev/talks/) - [![](https://andros.dev/static/img/header/cv.svg) CV CV](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/) - [![](https://andros.dev/static/img/header/chat.svg) Contacto Contacto](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/) # Javascript ejecutar cuando una etiqueta sea visible - web - javascript ![](https://img.andros.dev/NMpYw3Z8BvKherdGZxWukPCjX8I=/800x0/filters:format\(avif\)/https://andros.dev/media/thumbnails/ai_thumbnail_c84dc8a5.png) Si quieres **lanzar una función de JavaScript cuando se muestre una etiqueta de HTML**... ¡Estas de suerte! Con el **nuevo API Observables** evitarás cálculos innecesarios como comprobar la posición del elemento DOM. Te enseño lo fácil que es implementarlo en la actualidad, **sin recurrir al evento de scroll** (scrollTop) u otras técnicas que malgastan la CPU del equipo. ## DEMO ## Cuando visualices el cuadrado se añadirá la clase '.cuadrado--rota' # ¡Baja\! 👇👇👇👇👇 ## HTML y CSS Antes hay que definir el **elemento que queremos usar como disparador**. Cuando sea visible en el `viewport`, o entre en la zona visible por el ojo del visitante, es cuando lanzaremos el código. El HTML del ejemplo anterior es un sencillo `<div>`. ``` <div class="cuadrado"></div> ``` Y su CSS contiene `.cuadrado` que le da forma y `.cuadrado--rota` que será añadido cuando sea visible dando la animación de rotación. ``` .cuadrado { border: .2rem solid black; width: 10rem; height: 10rem; transition: 2s; margin: 0 auto; margin-top: 100rem; margin-bottom: 5rem; } .cuadrado--rota { transform: rotate(45deg); } ``` ## Javascript Llega el momento de usar `Observable`. ``` // Capturamos el elemento que deseamos observar const miCuadrado = document.querySelector('.cuadrado'); // Creamos un objeto IntersectionObserver const observerCuadrado = new IntersectionObserver((entries) => { // Comprobamos todas las intesecciones. En el ejemplo solo existe una: cuadrado entries.forEach((entry) => { // Si es observable, entra if (entry.isIntersecting) { // Añadimos la clase '.cuadrado--rota' miCuadrado.classList.add('cuadrado--rota'); } else { // En caso contrario quita la clase miCuadrado.classList.remove('cuadrado--rota'); } }); }); // Añado a mi Observable que quiero observar. En este caso el cuadrado observerCuadrado.observe(miCuadrado); ``` Puedes simplificar la tarea usando [FFNM](https://github.com/tanrax/FFNM), una herramienta propia que me ayuda a aplicar la misma lógica sin repetirme. - [DEMO](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/#blog-single-content__title--demo) - [HTML y CSS](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/#blog-single-content__title--html-y-css) - [Javascript](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/#blog-single-content__title--javascript) Este trabajo está bajo una [licencia Attribution-NonCommercial-NoDerivatives 4.0 International.](https://creativecommons.org/licenses/by-nc-nd/4.0/) ![licencia by-nc-nd](https://img.andros.dev/DiCMSjXXlKdkD6m1x2fPwXV9a-4=/150x0/filters:format\(avif\)/https://andros.dev/static/img/components/license/by-nc-nd.png) ## ¿Me invitas a un café? [![Ko-fi donations](https://storage.ko-fi.com/cdn/cup-border.png)Apóyame en Ko-fi](https://ko-fi.com/W7W02LB83 "Support me on ko-fi.com") ## Comentarios Deja un comentario Todavía no hay ningún comentario. ![Andros Fenollosa](https://img.andros.dev/M-q_grZw15QRJTFEWXF30fYcsv4=/50x0/filters:format\(avif\)/https://andros.dev/static/img/blog/author.png) Escrito por Andros Fenollosa febrero 28, 2021 ![Reloj](https://andros.dev/static/img/blog/time.svg)2 min de lectura ## Sigue leyendo ![Default](https://img.andros.dev/zahAN90JneQf4inwnDewOwfugmI=/400x0/filters:format\(avif\)/https://andros.dev/media/thumbnails/default.png) - web - html5 - javascript - jquery - menú desplegable - menú - Sass ## Menú desplegable con varios niveles en JQuery ![Default](https://img.andros.dev/zahAN90JneQf4inwnDewOwfugmI=/400x0/filters:format\(avif\)/https://andros.dev/media/thumbnails/default.png) - web - html5 ## ¿Diferencia entre Diseñador Gráfico, Diseñador Web, Programador Web y Webmaster? ![New Typescript](https://img.andros.dev/DW__B1B86rQQFLWeUdsFOKEclmo=/400x0/filters:format\(avif\)/https://andros.dev/media/thumbnails/ai_thumbnail_69de42cc.png) - web - javascript - typescript ## Typescript importa tus modulos ## Visitantes en tiempo real Estás solo: 🐱 Hecho con ![amor](https://andros.dev/static/img/footer/heart.svg) por Andros Fenollosa usando [Django LiveView](https://django-liveview.andros.dev/) Diseñado por [Suquet Estudi](https://suquet.studio/) - ![RSS Feed](https://andros.dev/static/img/footer/rss.svg) - [![Org Social](https://andros.dev/static/img/footer/org-social.svg)](https://andros.dev/static/social.org) - [![Mastodon](https://andros.dev/static/img/footer/mastodon.svg)](https://activity.andros.dev/@andros) - [![GitHub](https://andros.dev/static/img/footer/github.svg)](https://github.com/tanrax)
Readable Markdown
Si quieres **lanzar una función de JavaScript cuando se muestre una etiqueta de HTML**... ¡Estas de suerte! Con el **nuevo API Observables** evitarás cálculos innecesarios como comprobar la posición del elemento DOM. Te enseño lo fácil que es implementarlo en la actualidad, **sin recurrir al evento de scroll** (scrollTop) u otras técnicas que malgastan la CPU del equipo. ## DEMO ## Cuando visualices el cuadrado se añadirá la clase '.cuadrado--rota' ## ¡Baja\! 👇👇👇👇👇 ## HTML y CSS Antes hay que definir el **elemento que queremos usar como disparador**. Cuando sea visible en el `viewport`, o entre en la zona visible por el ojo del visitante, es cuando lanzaremos el código. El HTML del ejemplo anterior es un sencillo `<div>`. ``` <div class="cuadrado"></div> ``` Y su CSS contiene `.cuadrado` que le da forma y `.cuadrado--rota` que será añadido cuando sea visible dando la animación de rotación. ``` .cuadrado { border: .2rem solid black; width: 10rem; height: 10rem; transition: 2s; margin: 0 auto; margin-top: 100rem; margin-bottom: 5rem; } .cuadrado--rota { transform: rotate(45deg); } ``` Llega el momento de usar `Observable`. ``` // Capturamos el elemento que deseamos observar const miCuadrado = document.querySelector('.cuadrado'); // Creamos un objeto IntersectionObserver const observerCuadrado = new IntersectionObserver((entries) => { // Comprobamos todas las intesecciones. En el ejemplo solo existe una: cuadrado entries.forEach((entry) => { // Si es observable, entra if (entry.isIntersecting) { // Añadimos la clase '.cuadrado--rota' miCuadrado.classList.add('cuadrado--rota'); } else { // En caso contrario quita la clase miCuadrado.classList.remove('cuadrado--rota'); } }); }); // Añado a mi Observable que quiero observar. En este caso el cuadrado observerCuadrado.observe(miCuadrado); ``` Puedes simplificar la tarea usando [FFNM](https://github.com/tanrax/FFNM), una herramienta propia que me ayuda a aplicar la misma lógica sin repetirme.
ML Classification
ML Categoriesnull
ML Page Typesnull
ML Intent Typesnull
Content Metadata
Languagees
Authornull
Publish Timenot set
Original Publish Time2025-09-25 00:22:09 (7 months ago)
RepublishedNo
Word Count (Total)408
Word Count (Content)275
Links
External Links6
Internal Links12
Technical SEO
Meta NofollowNo
Meta NoarchiveNo
JS RenderedNo
Redirect Targetnull
Performance
Download Time (ms)239
TTFB (ms)239
Download Size (bytes)6,641
Shard89 (laksa)
Root Hash9764991572899051289
Unparsed URLdev,andros!/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/ s443