#029: FitVids.js integrieren

Bilder sind nicht die einzigen Medien, die sich in unser flexibles Raster einfügen müssen. Und Bilder waren im Vergleich zu Videos einfach! Wenn Sie die width eines <img> festlegen und dessen height auf auto überschreiben, behält das Bild natürlich sein Seitenverhältnis bei. Dies gilt auch für <video>, aber ehrlich gesagt werden die meisten Videos im Web heutzutage direkt über das <video>-Tag auf Seiten eingebettet.

Als Beispiel habe ich versucht, dies hier in der Lodge zu tun und habe es schließlich aufgegeben, da Vimeo Pro so viel praktischer war (funktioniert auf jedem Gerät, schöner Player, günstig, schnelles Streaming usw.). Sie betten Vimeo-Videos (typischerweise) nicht über ein <video>-Tag ein, sondern verwenden deren bereitgestellten Einbettungscode, der ein <iframe> ist. YouTube und eine Reihe anderer beliebter Videodienste nutzen dies ebenfalls.

iFrames behalten beim Ändern der Größe **nicht** ihr Seitenverhältnis wie Bilder. Wir können jedoch das ursprüngliche Seitenverhältnis ermitteln, indem wir seine Breite und Höhe testen und dividieren. Dann können wir diese Informationen verwenden, um eine Box mit genau diesem Seitenverhältnis zu erstellen (mit einem Padding-Trick, siehe Uncle Daves Ol’ Padded Box) und den iFrame darin absolut zu positionieren. Siehe: Intrinsic Ratios for Videos. So verhält sich das Video beim Vergrößern und Verkleinern im Wesentlichen wie ein Bild und respektiert sein Seitenverhältnis.

Oder wir könnten einfach FitVids.js (das ich mitgeschrieben habe) verwenden, um diesen gesamten Prozess zu automatisieren (es tut buchstäblich genau das, was ich beschrieben habe, nur automatisch). Wir fügen diese Bibliothek in unsere global.js auf die gleiche Weise wie prism.js hinzu. Zum ersten Mal benötigen wir jQuery, also holen wir uns den Link von ScriptSrc und binden ihn im Footer vor unserer global.js ein. Dann rufen wir in unserer global.js FitVids auf. Fertig und erledigt.