Código de JavaScript - Mover una capa en la dirección de entrada al pasar el ratón por encima

1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 26 de Mayo del 2021gráfica de visualizaciones de la versión: 1
1.082 visualizaciones desde el 26 de Mayo del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<!DOCTYPE html>
<head>
 
<style>
    .div {
        width:200px;
        height:200px;
        border:1px solid;
        display: inline-block;
        overflow: hidden;
        position: relative;
    }
    .imagen {
        background:url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/74196/sass-logo.png);
    }
    .cortina {
        width:100%;
        height:100%;
        position:absolute;
        background-color: grey;
        left:100%;
        display: flex;
        justify-content: center;
        align-items: center;
        color:white;
        font-weight: bold;
    }
    .cortina.izquierda {
        top:0;
        animation: deIzquierda 0.3s linear both;
    }
    .cortina.derecha {
        top:0;
        animation: deDerecha 0.3s linear both;
    }
    .cortina.superior {
        left:0;
        animation: deSuperior 0.3s linear both;
    }
    .cortina.inferior {
        left:0;
        animation: deInferior 0.3s linear both;
    }
    @keyframes deIzquierda {
        from {left:-100%}
        to {left:0px};
    }
    @keyframes deDerecha {
        from {left:100%}
        to {left:0px};
    }
    @keyframes deSuperior {
        from {top:-100%}
        to {top:0px};
    }
    @keyframes deInferior {
        from {top:100%}
        to {top:0px};
    }
</style>
</head>
 
<body>
    <h1>Titulo</h1>
 
    <div class="div imagen"><div class='cortina'>Texto de prueba</div></div>
    <div class="div"><div class='cortina'></div></div>
</body>
</html>
 
<script>
document.querySelectorAll(".div").forEach(el => el.addEventListener("mouseover", entrar));
document.querySelectorAll(".div").forEach(el => el.addEventListener("mouseleave", salir));
 
function entrar(e) {
    const cortina=e.target.querySelector(".cortina");
    if (cortina) {
        const x=e.offsetX<e.target.offsetWidth-e.offsetX ? e.offsetX : e.target.offsetWidth-e.offsetX;
        const y=e.offsetY<e.target.offsetHeight-e.offsetY ? e.offsetY : e.target.offsetHeight-e.offsetY;
 
        if (x<y) { // horizontal
            cortina.classList.add(e.offsetX<e.target.offsetWidth-e.offsetX ? "izquierda" : "derecha");
        } else { // vertical
            cortina.classList.add(e.offsetY<e.target.offsetHeight-e.offsetY ? "superior" : "inferior");
        }
    }
}
 
function salir(e) {
    const cortina=e.target.querySelector(".cortina");
    if (cortina) {
        cortina.classList.remove("izquierda");
        cortina.classList.remove("derecha");
        cortina.classList.remove("superior");
        cortina.classList.remove("inferior");
    }
}
</script>



Comentarios sobre la versión: 1 (1)

Imágen de perfil
18 de Julio del 2021
estrellaestrellaestrellaestrellaestrella
Saludos,

Es de los que entienden los Navegadores. Incluso yo.

;-) Gracias por tus aportes.
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7071