ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.8 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/ |
| Last Crawled | 2026-04-02 19:15:58 (22 days ago) |
| First Indexed | 2025-09-25 00:22:09 (7 months ago) |
| HTTP Status Code | 200 |
| Content | |
| Meta Title | Javascript ejecutar cuando una etiqueta sea visible | Andros Fenollosa |
| Meta Description | 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 |
| Meta Canonical | null |
| 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 ](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/)
- [ Blog Blog](https://andros.dev/blog/)
- [ Cursos Cursos](https://andros.dev/cursos/)
- [ Libros Libros](https://andros.dev/books/)
- [ Charlas Charlas](https://andros.dev/talks/)
- [ CV CV](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/)
- [ Contacto Contacto](https://andros.dev/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/)
# Javascript ejecutar cuando una etiqueta sea visible
- web
- javascript
/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/)
/https://andros.dev/static/img/components/license/by-nc-nd.png)
## ¿Me invitas a un café?
[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.
/https://andros.dev/static/img/blog/author.png)
Escrito por Andros Fenollosa
febrero 28, 2021
2 min de lectura
## Sigue leyendo
/https://andros.dev/media/thumbnails/default.png)
- web
- html5
- javascript
- jquery
- menú desplegable
- menú
- Sass
## Menú desplegable con varios niveles en JQuery
/https://andros.dev/media/thumbnails/default.png)
- web
- html5
## ¿Diferencia entre Diseñador Gráfico, Diseñador Web, Programador Web y Webmaster?
/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  por Andros Fenollosa usando [Django LiveView](https://django-liveview.andros.dev/)
Diseñado por [Suquet Estudi](https://suquet.studio/)
- 
- [](https://andros.dev/static/social.org)
- [](https://activity.andros.dev/@andros)
- [](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 Categories | null |
| ML Page Types | null |
| ML Intent Types | null |
| Content Metadata | |
| Language | es |
| Author | null |
| Publish Time | not set |
| Original Publish Time | 2025-09-25 00:22:09 (7 months ago) |
| Republished | No |
| Word Count (Total) | 408 |
| Word Count (Content) | 275 |
| Links | |
| External Links | 6 |
| Internal Links | 12 |
| Technical SEO | |
| Meta Nofollow | No |
| Meta Noarchive | No |
| JS Rendered | No |
| Redirect Target | null |
| Performance | |
| Download Time (ms) | 239 |
| TTFB (ms) | 239 |
| Download Size (bytes) | 6,641 |
| Shard | 89 (laksa) |
| Root Hash | 9764991572899051289 |
| Unparsed URL | dev,andros!/blog/280de801/javascript-ejecutar-cuando-una-etiqueta-sea-visible/ s443 |