UNPKG

jquery-loading-overlay

Version:
153 lines (147 loc) 3.63 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jQuery Loading Overlay Demo</title> <script src="../libs/jquery/jquery.js"></script> <script src="../dist/loading-overlay.min.js"></script> <link type="text/css" href="demo.css" rel="stylesheet"></link> </head> <body> <div class="demo"> <div class="demo-content"> <button class="toggle-loading">Toggle Overlay</button> <input type="checkbox" id="css-input" checked /> <label for="css-input">show with demo css</label> <div id="target"></div> </div> <div class="code-samples"> <div class="js"> <h2>JavaScript: </h2> <pre> jQuery(function ($) { var target = $('#target'); $('.toggle-loading').click(function () { if (target.hasClass('loading')) { target.loadingOverlay('remove'); } else { target.loadingOverlay(); }; }); }); </pre> </div> <div class="html"> <h2>HTML without overlay: </h2> <pre>&lt;div id="target"&gt;&lt;/div&gt;</pre> <h2>HTML with overlay: </h2> <pre> &lt;div id="target" class="loading"&gt; &lt;div class="loading-overlay"&gt; &lt;p class="loading-spinner"&gt; &lt;span class="loading-icon"&gt;&lt;/span&gt; &lt;span class="loading-text"&gt;loading&lt;/span&gt; &lt;/p&gt; &lt;/div&gt; &lt;/div&gt; </pre> </div> <div class="css"> <h2>Demo CSS: </h2> <pre> @font-face { font-family: "demo"; src: url('fonts/icons.woff') format("woff"), url('fonts/icons.ttf') format("truetype"); } @keyframes loadingStart { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes loading { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } } .loading { position: relative; pointer-events: none; } #css-input:checked ~ .loading .loading-overlay { position: absolute; top: 0; bottom: 0; left: 0; right: 0; -webkit-animation: loadingStart 3s 300ms linear 1 both; -moz-animation: loadingStart 3s 300ms linear 1 both; -o-animation: loadingStart 3s 300ms linear 1 both; animation: loadingStart 3s 300ms linear 1 both; background: rgba(255, 255, 255, 0.5); text-align: center; } #css-input:checked ~ .loading .loading-text { font-size: 0.875rem; line-height: 1.3125rem; text-shadow: white 0 0 1em, white 0 0 0.5em, white 0 0 0.25em; position: relative; display: block; text-transform: uppercase; font-weight: bold; } #css-input:checked ~ .loading .loading-text:after { content: "..."; } #css-input:checked ~ .loading .loading-spinner { position: absolute; top: 50%; bottom: 0; left: 0; right: 0; margin: -3.9375rem auto 0; color: #1a1d1d; text-align: center; } #css-input:checked ~ .loading .loading-icon { font-size: 4.8125rem; line-height: 5.25rem; text-shadow: rgba(255, 255, 255, 0.75) 0 0 0.5em; -webkit-animation: loading 1s steps(4) infinite; -moz-animation: loading 1s steps(4) infinite; -o-animation: loading 1s steps(4) infinite; animation: loading 1s steps(4) infinite; display: block; vertical-align: middle; } #css-input:checked ~ .loading .loading-icon:before { vertical-align: middle; content: "\e000"; font-family: "demo"; } </pre> </div> </div> </div> <script> jQuery(function ($) { var target = $('#target'); $('.toggle-loading').click(function () { if (target.hasClass('loading')) { target.loadingOverlay('remove'); } else { target.loadingOverlay(); }; }); }); </script> </body> </html>