2 acciones en URL imagen enlace Javascript [SOLUCIONADO]

Manipulación de Imágenes y Enlaces con JavaScript: Técnicas y Estrategias Avanzadas

El manejo eficiente de URL en imágenes y enlaces es vital para una experiencia de usuario optimizada en la web. En este artículo, nos centraremos en la exploración de dos estrategias esenciales de JavaScript para la manipulación de elementos gráficos e hipervínculos dentro de un sitio web. Estas habilidades son críticas para desarrolladores front-end que buscan ampliar sus conocimientos y añadir un nivel adicional de interactividad a sus páginas web.

Modificación Dinámica de URL de Imágenes

El primer escenario que exploraremos es la modificación dinámica de URL de imágenes. Esta función es relevante cuando estamos trabajando con galerías de imágenes o cambios de contenido visual que deben ser reactivos a las interacciones del usuario. Un ejemplo práctico de esto es cambiar la imagen mostrada cuando se pasa el ratón por encima de un elemento (hover).

<img id="imagenDinamica" src="imagen_por_defecto.jpg" alt="Imagen Dinámica">

<button class="margin-js" onclick="copyPreContent(this)">Copiar</button>
<script>
    // Obtener la imagen a modificar
    var imagen = document.getElementById('imagenDinamica');
    
    // Función para cambiar la imagen
    function cambiarImagen(url) {
        imagen.src = url;
    }
    
    // Evento onmouseover
    imagen.onmouseover = function() {
        cambiarImagen('imagen_al_pasar_mouse.jpg');
    };
    
    // Event: onmouseout
    imagen.onmouseout = function() {
        cambiarImagen('imagen_por_defecto.jpg');
    };
</script>

Como podemos observar en el código anterior, la función cambiarImagen permite actualizar el atributo src de un elemento img, alterando así la imagen visible. Al asociar esta función a los eventos onmouseover y onmouseout, ofrecemos al usuario una experiencia interactiva al interactuar con elementos gráficos.

Creación y Gestión dinámica de Enlaces

La gestión de enlaces es igualmente importante en la construcción de un sitio interactivo. La capacidad de JavaScript para manipular atributos de etiquetas a es fundamental para guiar al usuario a través de la navegación del sitio, efectuar llamadas a acciones efectivas y ajustar dinámicamente las rutas de redirección basadas en el comportamiento del usuario o condiciones específicas.

<a id="enlaceDinamico" href="url_por_defecto.html">Haz clic aquí</a>

<button class="margin-js" onclick="copyPreContent(this)">Copiar</button>
<script>
    // Obtener el enlace a modificar
    var enlace = document.getElementById('enlaceDinamico');
    
    // Función para cambiar el enlace
    function cambiarEnlace(url) {
        enlace.href = url;
    }
    
    // Cambiar URL en evento click
    enlace.onclick = function(event) {
        // Evitar la acción por defecto del enlace
        event.preventDefault();
        // Definir nueva URL
        cambiarEnlace('nueva_url.html');
        // Redireccionar a la nueva URL
        window.location = enlace.href;
    };
</script>

En el fragmento de código anterior, la función cambiarEnlace se utiliza para asignar una nueva URL al atributo href de un enlace. El evento onclick detiene la navegación predeterminada y luego aplica el nuevo destino del enlace, que puede depender de diversos factores como la sesión del usuario o datos de análisis de clics.

Optimización de Carga y Lazy Loading

Una técnica particularmente impactante en el rendimiento y SEO de un sitio web es el lazy loading de imágenes. Este método consiste en retrasar la carga de imágenes hasta que sean necesarias, lo cual puede significar un ahorro considerable en el tiempo de carga de la página y en el uso de datos para el usuario final, especialmente en móviles y dispositivos con conexión limitada.

<script>
    document.addEventListener("DOMContentLoaded", function() {
        var imagenesLazy = document.querySelectorAll("img.lazy");
        
        function cargarImagen(event) {
            var img = event.target;
            img.src = img.dataset.src;
            img.classList.remove("lazy");
        }
        
        imagenesLazy.forEach(function(img) {
            img.addEventListener('load', cargarImagen);
            img.src = img.dataset.src;
        });
    });
</script>

<button class="margin-js" onclick="copyPreContent(this)">Copiar</button>

Con el código de arriba, cuando el DOM esté completamente cargado, todas las imágenes con la clase “lazy” se seleccionan y su carga se inicia cambiando su atributo src como parte del manejo del evento load. Esto hará que las imágenes empiecen a cargarse en el punto que la estructura de la página lo permita.

Manipulación de URL de fondo en CSS

A veces, las imágenes están dispuestas como fondo de un elemento utilizando CSS, en cuyo caso también podemos gestionar dichas URLs con JavaScript para ofrecer variaciones dinámicas en el diseño de nuestros sitios.

<div id="contenedorConFondo" style="background-image: url('imagen_por_defecto.jpg');"></div>

<button class="margin-js" onclick="copyPreContent(this)">Copiar</button>
<script>
    var contenedor = document.getElementById('contenedorConFondo');
    
    function cambiarFondo(url) {
        contenedor.style.backgroundImage = 'url("' + url + '")';
    }
    
    // Cambiar fondo al hacer clic en el contenedor
    contenedor.onclick = function() {
        cambiarFondo('nueva_imagen_fondo.jpg');
    };
</script>

Al interactuar con las propiedades de estilo de un elemento mediante JavaScript, se abre un abanico de posibilidades para personalizar la experiencia de usuario en función de su navegación, eventos externos o criterios definidos por el desarrollador. En el fragmento anterior, al hacer clic sobre el div, la función cambiarFondo es ejecutada, alterando así el fondo.

Consideraciones de Accesibilidad y UX en la Manipulación de Imágenes y Enlaces

Por último, es fundamental recordar las prácticas de accesibilidad y experiencia del usuario (UX) cuando se trabaja con manipulación dinámica de contenido. Usar técnicas como alt en imágenes y textos descriptivos en enlaces son fundamentales para que la web sea usable por una audiencia más amplia, incluyendo a personas con discapacidades visuales que utilizan lectores de pantalla.

No hay que olvidar también considerar el comportamiento de estos elementos en dispositivos móviles, donde los eventos de hover no existen y clics múltiples pueden resultar en una experiencia de usuario frustrante. Continuar explorando y aprendiendo sobre JavaScript, y su aplicación inteligente en el diseño web, seguramente resultará en sitios web más interactivos, accesibles y atractivos para todos los usuarios.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad