Formulario arrastrable ( Draggable ) con HTML , CSS y JavaScript

HTML
<div class="wrapper">
    <header><span class="close">×</span></header>
    <div class="content">
        <h3>Arrastable Div</h3>
        <p>Este es un div arrastrable fue creado utilizando HTML CSS y Javascript. Puede mover este div a cualquier parte del documento o página.</p>
    </div>
</div>
CSS
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:"Poppins",sans-serif;
}
body{
    background:#17202a;
}
.wrapper{
    top:50%;
    left:50%;
    width:450px;
    background:#fff;
    position:absolute;
    border-radius:10px;
    transform:translate(-50%,-50%) scale(1);
}
.wrapper header{
    background:#f39c12;
    color:#fff;
    padding:20px 10px;
    border-top-left-radius:10px;
    border-top-right-radius:10px;
    cursor:move;
}
.wrapper header span{
    position:absolute;
    top:2px;
    right:10px;
    font-size:25px;
    cursor:pointer;
}
.wrapper .content{
    text-align:center;
    margin:20px;
}
.wrapper .content h3{
    margin-bottom:10px;
}
JS
const wrapper  = document.querySelector(".wrapper"),
        header = wrapper.querySelector("header");
const close    = document.querySelector(".close");

function onDrag({movementX,movementY}){
    
    let getStyle = window.getComputedStyle(wrapper);
    let left     = parseInt(getStyle.left);
    let top      = parseInt(getStyle.top);     
    
    wrapper.style.left = `${left + movementX}px`;
    wrapper.style.top = `${top + movementY}px`;

}

header.addEventListener("mousedown",() =>{
    header.classList.add("active");
    header.addEventListener("mousemove",onDrag);
});

document.addEventListener("mouseup",()=>{
    header.classList.remove("active");
    header.removeEventListener("mousemove",onDrag);
});

close.addEventListener("click",()=>{
    wrapper.remove();  
});

Autor: William

Publicado: 12/04/2022

Compartir Elemento Web

Donar a Compositu
Otras formas de ayudar
  • Compártelo en tus redes sociales.
  • Recomienda los elementos.
  • Regístrate Aquí
  • Deja tu comentario agradeciendo el aporte.

Descarga el código completo del Elemento Web y archivos necesarios (imágenes, librerias, plugins, frameword, etc)

Deja tu comentario