Create a modal window in Javascript and CSS
Modal dialog is one of great functionality to let the user focus on one particular action he needs to take. In C++ or other languages it's easy to create a modal window. Unfortunately, for Web, it is not by simple calling one function.
Here's the code to implement a modal window using HTML, CSS and Javascript
CSS Code
body { margin: 0px; } #modalWindowWrapper { display:none; position:absolute; width:100%; height:100%; top:0px; left:0px; } .modalWindowBack { -moz-opacity:0.4; opacity:0.4; width:100%; height:100%; background-color:#999999; position:absolute; z-index:500; top:0px; left:0px; } .modalWindowContainer { position:absolute; width:300px; left:50%; top:50%; z-index:750; } .modalWindow { background:#CEDCFF; border:solid 1px #15295A; position:relative; top:-150px; left:-200px; z-index:1000; width:400px; height:100px; padding:10px; font:normal 12px verdana; }
Javascript Code
var disableScroll = 0; function ScrollingDetected() { if(disableScroll) { window.scrollTo(0,0); } } if(window.addEventListener) { window.addEventListener("scroll", ScrollingDetected, false); } else if(document.addEventListener) { document.addEventListener("scroll", ScrollingDetected, false); } else if("onscroll" in self) { self.onscroll = ScrollingDetected; } function revealModal(id) { disableScroll = 1; document.getElementById(id).style.display = "block"; } function hideModal(id) { disableScroll = 0; document.getElementById(id).style.display = "none"; } function showMessage() { document.getElementById('result').innerHTML = 'You click no'; } function resetMessage() { document.getElementById('result').innerHTML = ''; }
HTML Code
<div id="modalWindowWrapper"> <div class="modalWindowBack"></div> <div class="modalWindowContainer"> <div class="modalWindow"> This is a modal window. <br/><br/> Do you want to close this window? <input type="button" value="Yes" onclick="hideModal('modalWindowWrapper');resetMessage();"> <input type="button" value="No" onClick="showMessage();"> <br/> <br/> <div id="result"></div> </div> </div> </div>