Componente modal mínimo en JavaScript Mimodal,js

Tiempo de ejecución: 30 minutos. Empezar

Autor: Draggable
Views Total: 2,331
Sitio oficial: Ir a la web
Actualizado: April 12, 2016
Licencia: MIT

Vista prévia

Componente modal mínimo en Vanilla JavaScript-Mimodal

Descripción

Mimodal es un plugin de JavaScript vainilla que le ayuda a crear ventanas modales multipropósito con un mínimo esfuerzo.

¿Cómo funciona?

Descargue e inserte la hoja de estilos modal. CSS & JavaScript modal. js en su página HTML.

<link rel="stylesheet" href="dist/modal.css">
<script src="dist/modal.js"></script>

Cree una ventana modal básica.

<button class="default"




 data-toggle="modal"




 data-modal-style="simple"




 data-modal-content="This is as simple as it gets.">




Click me
</button>

Cree una ventana modal con una animación de fundido.

<button class="default"




 data-toggle="modal"




 data-modal-style="fade"




 data-modal-content="I just fade in.">




Click me
</button>

Cree una ventana modal que se descarte automáticamente después de 3 segundos.

<button class="default"




 data-toggle="modal"




 data-modal-style="fade"




 data-modal-timeout="3000"




data-modal-content="Consider yourself warned.">




Click me
</button>

Crear un cuadro de diálogo modal con confirmar & Cancelar botones.

<button class="default"




 data-toggle="dialog"




 data-modal-content="Are you sure you want to do this?">




Click me
</button>

El poder real de Mimodal está en su extensibilidad. Al pasar una opción de configuración, tus modales pueden hacer lo que necesites. Este es un ejemplo que le ayuda a crear una ventana modal arrastrable.

<button class="default" id="draggable">Click me</button>
((window.gitter = {}).chat = {}).options = {

room: 'draggable/mimodal'
};

var getScripts = function() {

var scripts = [];

var extScripts = [


'//sidecar.gitter.im/dist/sidecar.v1.js'

];


var i = (extScripts.length - 1);


function readyState() {


var script = this;


if (!script.readyState || script.readyState === 'loaded' || script.readyState === 'complete') {



script.onload = script.onreadystatechange = null;



i--;



if (i === -1) {




// remove script after added




for (i = scripts.length - 1; i >= 0; i--) {





scripts[i].remove();




}



} else {




getScript(i);



}


}

}


function getScript(i) {


var script = document.createElement('script');


script.appendChild(document.createTextNode(''));


script.setAttribute('src', extScripts[i]);


script.setAttribute('type', 'text/javascript');


script.async = true;


// Attach handlers for all browsers


script.onload = script.onreadystatechange = readyState;


scripts.push(script);


document.body.appendChild(script);

}


// if (isSite) {

getScript(i);

// }

};

getScripts();

var buttons = document.getElementsByTagName('button');
var buttonCallbacks = {

simpleWarning: function() {


var modal = document.querySelector('.mimodal'),



timerContainer = document.createElement('h1'),



timer = 3;


modal.appendChild(timerContainer);


timerContainer.innerHTML = timer;


var countDown = function countDown() {



timerContainer.innerHTML = String(timer--);



if (timer === 0) {




clearInterval(countdownInterval);



}


};


var countdownInterval = setInterval(countDown, 1000);


countDown();

},

draggable: function(){


var modalOptions = {



modalHeader: 'I\'m Draggable',



modalContent: 'This modal is draggable, try dragging from the move icon in the control bar or from the borders of the modal.',



draggable: true


};


window.mimodal.dialog(modalOptions);

}
};

for (var i = 0; i < buttons.length; i++) {

var callback = buttonCallbacks[buttons[i].id];

if (callback) {


buttons[i].addEventListener('click', callback);

}
}

Te puede interesar: