Created
January 26, 2016 15:21
-
-
Save ihortkachuk/a8eaf53ea6db3827093d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function (window, document, undefined) { | |
/* | |
* Grab all iframes on the page or return | |
*/ | |
var iframes = document.getElementsByTagName('iframe'); | |
/* | |
* Loop through the iframes array | |
*/ | |
for (var i = 0; i < iframes.length; i++) { | |
var iframe = iframes[i], | |
/* | |
* RegExp, extend this if you need more players | |
*/ | |
players = /www.youtube.com|player.vimeo.com/; | |
/* | |
* If the RegExp pattern exists within the current iframe | |
*/ | |
if (iframe.src.search(players) > 0) { | |
/* | |
* Calculate the video ratio based on the iframe's w/h dimensions | |
*/ | |
var videoRatio = ( iframe.height / iframe.width ) * 100; | |
/* | |
* Replace the iframe's dimensions and position | |
* the iframe absolute, this is the trick to emulate | |
* the video ratio | |
*/ | |
iframe.style.position = 'absolute'; | |
iframe.style.top = '0'; | |
iframe.style.left = '0'; | |
iframe.width = '100%'; | |
iframe.height = '100%'; | |
/* | |
* Wrap the iframe in a new <div> which uses a | |
* dynamically fetched padding-top property based | |
* on the video's w/h dimensions | |
*/ | |
var wrap = document.createElement('div'); | |
wrap.className = 'fluid-vids'; | |
wrap.style.width = '100%'; | |
wrap.style.position = 'relative'; | |
wrap.style.paddingTop = videoRatio + '%'; | |
/* | |
* Add the iframe inside our newly created <div> | |
*/ | |
var iframeParent = iframe.parentNode; | |
iframeParent.insertBefore(wrap, iframe); | |
wrap.appendChild(iframe); | |
} | |
} | |
})(window, document); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment