Caja modal minimalista en Vanilla JavaScript

Tiempo de ejecución: 30 minutos. Empezar

Autor: mhottman-templates
Views Total: 3,632
Sitio oficial: Ir a la web
Actualizado: August 12, 2016
Licencia: MIT

Vista prévia

Caja modal minimalista en Vanilla JavaScript

Descripción

Una biblioteca modal de JavaScript minimalista de Vanilla que utiliza transiciones y transformaciones CSS3 para las animaciones de apertura y cierre. Totalmente styleable a través de CSS/SCSS.

Funcionamiento

Inserte el archivo JavaScript principal en la Página Web.

<script src="modal.js"></script>

Cree un botón para alternar la ventana modal.

<button id="modal-window">Click me to open modal</button>
var btn = document.getElementById('modal-window');
btn.addEventListener('click', openModalWindow);

Cree el contenido que se mostrará en la ventana modal y, a continuación, cree una instancia modal y pase los elementos secundarios:

function openModalWindow(e) {

var child = document.createElement('div');



child.className = "inside";

var text = document.createElement('h1');



text.className = "inside-text";



text.innerHTML = "Hello Worlds";

child.appendChild(text);


var modal = new Modal(child, true);

modal.show(); //open the modal window
}

Quite la ventana modal.

modal.unmount();

Los estilos CSS básicos para la ventana modal.

.modal {

position: fixed;

opacity: 0;

display: table;

width: 100%;

height: 100%;

top: 0;

left: 0;

z-index: 5000;
}

.modal-backdrop {

display: table-cell;

vertical-align: middle;

text-align: center;

background-color: rgba(0, 0, 0, .5);
}

.modal-inner {

display: inline-block;

text-align: left;

background-color: #eee;

color: #000;

padding: 20px;
}

#close-modal {

position: absolute;

right: 10px;

top: 10px;

font-size: 1.3em;

cursor: pointer;
}

Aplique las animaciones de fundido al modal mediante CSS3.

.modal.fade .modal-inner {

transform: translateY(-100px);

transition: all .3s ease-in-out;
}

.modal.fade.in {

opacity: 1;

transition: all .3s ease-in-out;
}

.modal.fade.in .modal-inner {

transform: translateY(0);

height: auto;

box-shadow: 0 2px 3px 0 #303030;

border-radius: 2px;

transition: all .3s ease-in-out;

width: auto;

max-width: 80%;

padding: 20px;
}

Te puede interesar: