A Pen by englishextra
How do I make an a pen by englishextra?
What is a a pen by englishextra? How do you make a a pen by englishextra? This script and codes were developed by Englishextra on 17 January 2023, Tuesday.
A Pen by englishextra - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>A Pen by englishextra</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <h1 class="title">Iframe-Lightbox Demo</h1> <p>Responsive no-jQuery pure JS/CSS Lightbox for iframes, no dependencies, customizable aspect ratio, 4 kb unminified source code, with demo</p> <p><a href="https://nodei.co/npm/iframe-lightbox/"><img src="https://camo.githubusercontent.com/4e8d842a445e98d70413ec0cdf2de3c4bbd2964d/68747470733a2f2f6e6f6465692e636f2f6e706d2f696672616d652d6c69676874626f782e706e673f646f776e6c6f6164733d74727565" alt="NPM" data-canonical-src="https://nodei.co/npm/iframe-lightbox.png?downloads=true" style="max-width:100%;"></a></p> <p><a href="https://github.com/englishextra/iframe-lightbox"><img src="https://camo.githubusercontent.com/05e33067cdf8446de0efaaada0a614c26bfe8f70/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f696672616d652d6c69676874626f782e737667" alt="npm" data-canonical-src="https://img.shields.io/npm/v/iframe-lightbox.svg" style="max-width:100%;"></a> <a href="https://github.com/englishextra/iframe-lightbox"><img src="https://camo.githubusercontent.com/f9b32ca33edab2aa10004a2e164204d030a11375/68747470733a2f2f696d672e736869656c64732e696f2f626f7765722f762f696672616d652d6c69676874626f782e737667" alt="Bower" data-canonical-src="https://img.shields.io/bower/v/iframe-lightbox.svg" style="max-width:100%;"></a> <a href="https://travis-ci.org/englishextra/iframe-lightbox"><img src="https://camo.githubusercontent.com/68c5a2cebe394dc9020950242f0106e9861223c9/68747470733a2f2f7472617669732d63692e6f72672f656e676c69736865787472612f696672616d652d6c69676874626f782e7376673f6272616e63683d6d6173746572" alt="Build Status" data-canonical-src="https://travis-ci.org/englishextra/iframe-lightbox.svg?branch=master" style="max-width:100%;"></a> <a href="https://www.bithound.io/github/englishextra/iframe-lightbox"><img src="https://camo.githubusercontent.com/ef4e8779904740cddf5fa696d274e465d54e7903/68747470733a2f2f7777772e626974686f756e642e696f2f6769746875622f656e676c69736865787472612f696672616d652d6c69676874626f782f6261646765732f73636f72652e737667" alt="bitHound Overall Score" data-canonical-src="https://www.bithound.io/github/englishextra/iframe-lightbox/badges/score.svg" style="max-width:100%;"></a></p> <p> <a href="https://fiddle.jshell.net/englishextra/8pzy6uhr/show/">DEMO</a> <a href="https://output.jsbin.com/saqine">DEMO (ALT)</a> <a href="https://codepen.io/englishextra/full/jmjayV/">DEMO (ALT)</a> </p> <h3>Features</h3> <ul> <li>Nicely fits YouTube / Vimeo / SoundCloud or other URL via iframe</li> <li>Customizable aspect ratio via `data-padding-bottom` attribute</li> <li>Debounced launch, default 500ms, custom rate can be set as second parameter</li> <li>Preloading spinner that is unset after onload event succeeds</li> </ul> <h3>CDN</h3> <h4>jsDelivr</h4> <p> <code>https://cdn.jsdelivr.net/gh/englishextra/iframe-lightbox@latest/iframe-lightbox.min.js</code> <br/> <code>https://cdn.jsdelivr.net/gh/englishextra/iframe-lightbox@latest/iframe-lightbox.min.css</code> </p> <h4>unpkg</h4> <p> <code>https://unpkg.com/iframe-lightbox@latest/iframe-lightbox.js</code> <br/> <code>https://unpkg.com/iframe-lightbox@latest/iframe-lightbox.css</code> </p> <h3>Install</h3> <h4>npm</h4> <p> <code>npm install iframe-lightbox</code> </p> <h4>bower</h4> <p> <code>bower install iframe-lightbox</code> </p> <h3>Setup</h3> <p><code>class</code> is not required. They are used here to select elements. You may use some other method for elements selection.</p> <p><code>data-src</code> is required, and contains URL of your content.</p> <p><code>data-padding-bottom</code> is optional, and can be used to change default 16/9 Aspect Ratio to the one of yours with the formula: a percentage value of <code>height/width*100</code>.</p> <p>For instance, HD would be: 9 / 16 * 100 + "%"</p> <p>So, for YouTube or Vimeo, <code>data-padding-bottom="56.25%"</code> would be enough.</p> <p>For SoundCloud embedded player via iframe, use: <code>data-padding-bottom="166px"</code></p> <h2><a href="javascript:void(0);" class="iframe-lightbox-link" data-src="https://www.youtube.com/embed/KK9bwTlAvgo?autoplay=0" data-padding-bottom="56.25%">YouTube</a></h2> <pre><code><a href="javascript:void(0);"
class="iframe-lightbox-link"
data-src="https://www.youtube.com/embed/KK9bwTlAvgo?autoplay=0"
data-padding-bottom="56.25%">YouTube</a></code></pre> <h2><a href="javascript:void(0);" class="iframe-lightbox-link" data-src="https://player.vimeo.com/video/28629415?autoplay=false" data-padding-bottom="56.25%">Vimeo</a></h2> <pre><code><a href="javascript:void(0);"
class="iframe-lightbox-link"
data-src="https://player.vimeo.com/video/28629415?autoplay=false"
data-padding-bottom="56.25%">Vimeo</a></code></pre> <h2><a href="javascript:void(0);" class="iframe-lightbox-link" data-src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/317031598&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true" data-padding-bottom="166px">SoundCloud</a></h2> <pre><code><a href="javascript:void(0);"
class="iframe-lightbox-link"
data-src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/317031598&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"
data-padding-bottom="166px">SoundCloud</a></code></pre> <h2>Initialize</h2> <pre><code>[].forEach.call(document.getElementsByClassName("iframe-lightbox-link"), function(el) { el.lightbox = new IframeLightbox(el);
});</code></pre> <h2>Tips</h2> <p>SPA / PWA developers can use CSS flag classes when adding event listeners, e.g.:</p> <pre><code>[].forEach.call(document.getElementsByClassName("iframe-lightbox-link"), function(el) { if (!el.classList.contains("is-binded")) { el.lightbox = new IframeLightbox(el); el.classList.add("is-binded"); }
});</code></pre> <p>That way you avoid multiple assignments to a single element.</p> <h3><a href="https://github.com/englishextra/iframe-lightbox">GitHub</a></h3> <p>Inspired by <a href="https://github.com/squeral/lightbox">squeral/lightbox</a>, and available under MIT License</p> <script src="js/index.js"></script>
</body>
</html>
A Pen by englishextra - Script Codes CSS Codes
/*! * modified Simple lightbox effect in pure JS * @see {@link https://github.com/squeral/lightbox} * @see {@link https://github.com/squeral/lightbox/blob/master/lightbox.js} * passes jshint */
.iframe-lightbox,
.iframe-lightbox .backdrop { width: 100%; height: 100%; top: 0; left: 0;
}
.iframe-lightbox { display: none; position: fixed; opacity: 0; -webkit-transition: opacity 0.2s ease; transition: opacity 0.2s ease; z-index: 2;
}
.iframe-lightbox .backdrop { position: absolute; background-color: rgba(0, 0, 0, 0.5); cursor: default; z-index: 1;
}
.iframe-lightbox .content-holder { width: 80%; position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); margin-right: -50%; z-index: 2;
}
.iframe-lightbox .content { height: 0; position: relative; /* background-color: #000000; */ padding-bottom: 56.25%;
}
.iframe-lightbox .content > .body { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nNDgnIGhlaWdodD0nNDgnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIiBjbGFzcz0idWlsLXJpbmciPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJub25lIiBjbGFzcz0iYmsiPjwvcmVjdD48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI0NiIgc3Ryb2tlLWRhc2hhcnJheT0iMTg3Ljg2NzI0MDY4NDY2OTY0IDEwMS4xNTkyODM0NDU1OTEzMSIgc3Ryb2tlPSIjRTZFNkU2IiBvcGFjaXR5PSIxIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjgiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiB2YWx1ZXM9IjAgNTAgNTA7MTgwIDUwIDUwOzM2MCA1MCA1MDsiIGtleVRpbWVzPSIwOzAuNTsxIiBkdXI9IjFzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgYmVnaW49IjBzIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9jaXJjbGU+PC9zdmc+); background-repeat: no-repeat; background-size: 3.000em 3.000em; background-position: center center;
}
.iframe-lightbox .content > .body.is-loaded { background-image: none;
}
.iframe-lightbox iframe { display: block; width: 100%; height: 100%; border: 0; box-shadow: 0.267rem 0.267rem 0.267rem 0 rgba(3, 3, 3, 0.3); /*! * in js: iframe onload="this.style.opacity=1;" style="opacity:0;border:none;" */ /* opacity: 0; */ -webkit-transition: opacity 0.2s ease; transition: opacity 0.2s ease;
}
.iframe-lightbox.is-showing { display: block;
}
.iframe-lightbox.is-opened { opacity: 1;
}
A Pen by englishextra - Script Codes JS Codes
/*! * modified Simple lightbox effect in pure JS * @see {@link https://github.com/squeral/lightbox} * @see {@link https://github.com/squeral/lightbox/blob/master/lightbox.js} * @params {Object} elem Node element * @params {Object} [rate] debounce rate, default 500ms * new IframeLightbox(elem) * passes jshint */
(function (root) { "use strict"; var d = document, aEL = "addEventListener", gEBI = "getElementById", gEBCN = "getElementsByClassName", cE = "createElement", cL = "classList", aC = "appendChild", dS = "dataset", containerClass = "iframe-lightbox", isLoadedClass = "is-loaded", isOpenedClass = "is-opened", isShowingClass = "is-showing"; var IframeLightbox = function (elem, rate) { this.trigger = elem; this.rate = rate || 500; this.el = d[gEBCN](containerClass)[0] || ""; this.body = this.el ? this.el[gEBCN]("body")[0] : ""; this.content = this.el ? this.el[gEBCN]("content")[0] : ""; this.href = elem[dS].src || ""; this.paddingBottom = elem[dS].paddingBottom || ""; this.init(); }; IframeLightbox.prototype.init = function () { var _this = this; if (!this.el) { this.create(); } var debounce = function (func, wait) { var timeout, args, context, timestamp; return function () { context = this; args = [].slice.call(arguments, 0); timestamp = new Date(); var later = function () { var last = (new Date()) - timestamp; if (last < wait) { timeout = setTimeout(later, wait - last); } else { timeout = null; func.apply(context, args); } }; if (!timeout) { timeout = setTimeout(later, wait); } }; }; var handleOpenIframeLightbox = function (e) { e.preventDefault(); _this.open(); }; var debounceHandleOpenIframeLightbox = debounce(handleOpenIframeLightbox, this.rate); this.trigger[aEL]("click", debounceHandleOpenIframeLightbox); }; IframeLightbox.prototype.create = function () { var _this = this, bd = d[cE]("div"); this.el = d[cE]("div"); this.content = d[cE]("div"); this.body = d[cE]("div"); this.el[cL].add(containerClass); bd[cL].add("backdrop"); this.content[cL].add("content"); this.body[cL].add("body"); this.el[aC](bd); this.content[aC](this.body); this.content_holder = d[cE]("div"); this.content_holder[cL].add("content-holder"); this.content_holder[aC](this.content); this.el[aC](this.content_holder); d.body[aC](this.el); bd[aEL]("click", function () { _this.close(); }); var clearBody = function (e) { if (_this.isOpen()) { return; } _this.el[cL].remove(isShowingClass); _this.body.innerHTML = ""; }; this.el[aEL]("transitionend", clearBody, false); this.el[aEL]("webkitTransitionEnd", clearBody, false); this.el[aEL]("mozTransitionEnd", clearBody, false); this.el[aEL]("msTransitionEnd", clearBody, false); }; IframeLightbox.prototype.loadIframe = function () { this.iframeId = containerClass + Date.now(); this.body.innerHTML = '<iframe src="' + this.href + '" name="' + this.iframeId + '" id="' + this.iframeId + '" onload="this.style.opacity=1;" style="opacity:0;border:none;" scrolling="no" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen="true" height="166" frameborder="no"></iframe>'; (function (iframeId, body) { d[gEBI](iframeId).onload = function () { this.style.opacity = 1; body[cL].add(isLoadedClass); }; })(this.iframeId, this.body); }; IframeLightbox.prototype.open = function () { this.loadIframe(); if (this.paddingBottom) { this.content.style.paddingBottom = this.paddingBottom; } else { this.content.removeAttribute("style"); } this.el[cL].add(isShowingClass); this.el[cL].add(isOpenedClass); }; IframeLightbox.prototype.close = function () { this.el[cL].remove(isOpenedClass); this.body[cL].remove(isLoadedClass); }; IframeLightbox.prototype.isOpen = function () { return this.el[cL].contains(isOpenedClass); }; root.IframeLightbox = IframeLightbox;
})("undefined" !== typeof window ? window : this);
[].forEach.call(document.getElementsByClassName("iframe-lightbox-link"), function(el) { if (!el.classList.contains("is-binded")) { el.lightbox = new IframeLightbox(el); el.classList.add("is-binded"); }
});
Developer | Englishextra |
Username | englishextra |
Uploaded | January 17, 2023 |
Rating | 3 |
Size | 6,117 Kb |
Views | 10,120 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Grid 2 Go | 3,049 Kb |
Core.css | 4,958 Kb |
CSS angled stripes | 5,116 Kb |
Blog Article Template | 14,860 Kb |
Ready-to-Go Three-columns Responsive Typography Template with Off-Canvas Navigation | 18,977 Kb |
QR code generating with vanilla js | 5,758 Kb |
Responsive CSS3 Columns with Horizontal Scroll | 7,115 Kb |
Responsive Flexbox Administration | 7,376 Kb |
Parallax.js | 11,997 Kb |
JSON based picture gallery with lazyloading | 10,270 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Coburg Banks SVG Logo | Mjtweaver | 3,875 Kb |
Dribbble Template | ExtremelyGinger | 2,204 Kb |
Highbrow Basic HTML Lesson 7 | Kimlarocca | 1,662 Kb |
Exploring css spinners | Akagr | 3,569 Kb |
Javascript Welcome | Peterlewicki | 1,573 Kb |
Prism | Pyrografix | 2,843 Kb |
Sass Get Function | Lukewatts | 2,155 Kb |
Cool audio | Bigliam | 1,868 Kb |
Iron Man SVG Loading Animation | Andythayer | 3,069 Kb |
Sticky div | Kaslab | 2,225 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!