¿Cómo hacer un efecto de deslizamiento de fotos usando HTML y CSS?

Es un efecto de animación fácil y sorprendente creado con HTML y CSS, donde las fotos se mueven horizontalmente una por una como un rodillo. Cuando el puntero del mouse llega a la foto, la foto específica deja de moverse.

Enfoque: la idea básica de estas animaciones proviene del efecto de desplazamiento de la animación CSS. Veamos cómo funciona el código.

Código HTML: las fotos se moverán en un anillo circular usando HTML. Para crear la animación, hemos tomado un «div» y una sección para mantener el área de las fotos correctamente y el nombre de la clase se usa en el código CSS. Utilizamos la figura HTML y la etiqueta img para las fotos que se mostrarán en la página.

HTML

<!DOCTYPE html>
<html>
 
<body>
    <div class="addition">
        <section class="slideshow">
            <div class="content">
                <div class="content-carrousel">
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170558/geeks112.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170611/geeks28.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170619/geeks33.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170627/geeks41.jpg">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170635/geeks51.jpg">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-contentuploads/20201105170644/geeks61.jpg">
                    </figure>
                </div>
            </div>
        </section>
    </div>
</body>
 
</html>

Código CSS: Hablemos de la parte CSS del código. Se utilizan algunos atributos básicos como margen, relleno, posición, flotación, borde, animación, etc., que ayudarán a las fotos a darles la posición correcta. Ayuda a rotar las fotos en 2D. Primero gira alrededor de su propio eje. Luego, todo el «div» gira alrededor de su eje.

Para crear esta animación, se utiliza la propiedad figure:nth-child(“no. of child”) . El transform:rotateY(cantidad de grados) y translateZ(–px) son los dos atributos de CSS que ayudan a rotar el objeto.

CSS

<style>
    body {
        background-color: #000000;
    }
 
    .addition {
        margin-left: 35%;
        margin-top: 10%;
    }
 
    .slideshow {
        position: centre;
        margin: 0 auto;
        padding-top: 50px;
        height: 250px;
        background-color: rgb(10, 10, 10);
        box-sizing: border-box;
    }
 
    .content {
        margin: auto;
        width: 190px;
        perspective: 1000px;
        position: relative;
        padding-top 80px;
    }
 
    .content-carrousel {
        padding-left: 40px;
 
        /* This helps to rotate the
        photo div with respest to
        axis of an another circle */
        width: 100%;
        position: absolute;
        float: right;
        animation: rotar 15s infinite linear;
        transform-style: preserve-3d;
    }
 
    .content-carrousel:hover {
 
        /* This is a hover effect.
        when the mouse will reach
        on the photo, the photo
        will stop moving */
        animation-play-state: paused;
        cursor: pointer;
    }
 
    .content-carrousel figure {
 
        /* width of the full image div*/
        width: 100%;
 
        /* height of the full image div*/
        height: 120px;
        border: 1px solid #4d444d;
        overflow: hidden;
        position: absolute;
    }
 
    /* The calculation part starts for the angle.
    first, take the number of photos and then divide
    by 360 and write it in the position of degree */
 
    .content-carrousel figure:nth-child(1) {
        transform: rotateY(0deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(2) {
        transform: rotateY(60deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(3) {
        transform: rotateY(120deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(4) {
        transform: rotateY(180deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(5) {
        transform: rotateY(240deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(6) {
        transform: rotateY(300deg) translateZ(300px);
    }
 
    .content-carrousel figure:nth-child(7) {
        transform: rotateY(360deg) translateZ(300px);
    }
 
    .slideshow {
        position: absolute;
        box-shadow: 0px 0pz 20px 0px #000;
        border-radius: 2px;
    }
 
    .content-carrousel img {
        image-rendering: auto;
 
        /* The photo will move
        with this velocity */
        transition: all 300ms;
         
        /* width of the photo */
        width: 100%;
         
        /* height of the photo */
        height: 100%;
    }
 
    .content-carrousel img:hover {
        transform: scale(1.2);
        transition: all 300ms;
    }
 
    @keyframes rotar {
        from {
            transform: rotateY(0deg);
        }
 
        to {
            transform: rotateY(360deg);
        }
    }
</style>

Código final: en esta sección, combinaremos las dos secciones anteriores (HTML y CSS) de código.

HTML

<!DOCTYPE html>
<html>
 
<head>
    <style>
        body {
            background-color: #000000;
        }
 
        .addition {
            margin-left: 35%;
            margin-top: 10%;
        }
 
        .slideshow {
            position: centre;
            margin: 0 auto;
            padding-top: 50px;
            height: 250px;
            background-color: rgb(10, 10, 10);
            box-sizing: border-box;
        }
 
        .content {
            margin: auto;
            width: 190px;
            perspective: 1000px;
            position: relative;
            padding-top 80px;
        }
 
        .content-carrousel {
            padding-left: 40px;
            width: 100%;
            position: absolute;
            float: right;
            animation: rotar 15s infinite linear;
            transform-style: preserve-3d;
        }
 
        .content-carrousel:hover {
            animation-play-state: paused;
            cursor: pointer;
        }
 
        .content-carrousel figure {
            width: 100%;
            height: 120px;
            border: 1px solid #4d444d;
            overflow: hidden;
            position: absolute;
        }
 
        .content-carrousel figure:nth-child(1) {
            transform: rotateY(0deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(2) {
            transform: rotateY(60deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(3) {
            transform: rotateY(120deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(4) {
            transform: rotateY(180deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(5) {
            transform: rotateY(240deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(6) {
            transform: rotateY(300deg) translateZ(300px);
        }
 
        .content-carrousel figure:nth-child(7) {
            transform: rotateY(360deg) translateZ(300px);
        }
 
        .slideshow {
            position: absolute;
            box-shadow: 0px 0pz 20px 0px #000;
            border-radius: 2px;
        }
 
        .content-carrousel img {
            image-rendering: auto;
            transition: all 300ms;
            width: 100%;
            height: 100%;
        }
 
        .content-carrousel img:hover {
            transform: scale(1.2);
            transition: all 300ms;
        }
 
        @keyframes rotar {
            from {
                transform: rotateY(0deg);
            }
 
            to {
                transform: rotateY(360deg);
            }
        }
    </style>
 
</head>
 
<body>
    <div class="addition">
        <section class="slideshow">
            <div class="content">
                <div class="content-carrousel">
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170558/geeks112.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170611/geeks28.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170619/geeks33.png">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170627/geeks41.jpg">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170635/geeks51.jpg">
                    </figure>
                    <figure class="shadow">
                        <img src=
"https://media.geeksforgeeks.org/wp-content/uploads/20201105170644/geeks61.jpg">
                    </figure>
                </div>
            </div>
        </section>
    </div>
</body>
 
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por chalti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *