Bu yazımda sık sık karşılaştığım responsive youtube videosu sorununun çözümünden bahsedeceğim. Bildiğiniz üzere Iframe kodlarında sadece genişliği 100% vermek img kodlarında ki gibi doğru çalışmıyor. Iframe’de bir yüksekliğin ayarlanması gerekiyor yoksa tarayıcılar iframe’i 150px sabit bir yükseklikte oluşturuyor. Responsive youtube videosu oluşturma konusuyla ile ilgili makalemde bu durumu düzeltmeyi anlatacağım.
Aşağıdaki videoda olduğu gibi iframe’in yüksekliğinin otomatik olarak 150px gelmesi kötü bir görüntü oluşturuyor.
Responsive youtube iframe oluşturma yönteminin bir kaç olası çözümü var. Bu çözümleri aşağıda bulabilirsiniz.
Not: Yeni yöntemler ögrendikçe buraya bu yöntemleri ekleyeceğim.
Thierry Koblentz tarafından öncülük edilmiş ve 2009 yılında A List’te sunulmuş olan “Video için İçsel Oranlar Oluşturma (Creating Intrinsic Ratios for Video)” tekniğidir. Bu teknikle, iframe kodunu bir en-boy oranına sahip bir divin içine ekleyin, sonra videoya position: absolute; kodu ekleyerek bunun içinde konumlandırın. Bu bize güvenebileceğimiz makul bir yükseklik ve genişlik verir.
<div class="videoWrapper"> <!-- Copy & Pasted from YouTube --> <iframe width="560" height="349" src="https://www.youtube.com/embed/n_dZNLr2cME?rel=0&hd=1" frameborder="0" allowfullscreen></iframe> </div>
.videoWrapper { position: relative; padding-bottom: 56.25%; /* 16:9 */ padding-top: 25px; height: 0; } .videoWrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
Yukarıdaki kodlar ile .videoWrapper’ın içerisindeki iframe videosu 16:9 boyutunda orantılı bir şekilde görünecektir.
Bu sınırlamalardan herhangi biri sizin için geçerliyse, bir JavaScript çözümü düşünebilirsiniz. Sayfa yüklendiğinde veya sayfanın genişliği değiştiğinde sayfadaki tüm videolar en boy oranını korumak için yeniden boyutlandırılır.
// Tüm YouTube videolarını bul var $allVideos = $("iframe[src^='//www.youtube.com']"), $fluidEl = $("body"); // Her video için en boy oranını belirler ve kaydeder $allVideos.each(function() { $(this) .data('aspectRatio', this.height / this.width) // sabit değer olarak varsa yükseklik ve genişliği kaldır .removeAttr('height') .removeAttr('width'); }); // Pencere yeniden boyutlandırıldığında çalıştır $(window).resize(function() { var newWidth = $fluidEl.width(); // Tüm videoları kendi en boy oranlarına göre yeniden boyutlandır $allVideos.each(function() { var $el = $(this); $el .width(newWidth) .height(newWidth * $el.data('aspectRatio')); }); }).resize();
Yukarıdaki teknik ile responsive Vimeo videosu oluşturabilirsiniz. HTML/CSS kodlarında hiç bir değişiklik gerektirmez, sadece jQuery kodunda tek bir satırı değiştirerek Vimeo desteği eklenebilir:
var $allVideos = $("iframe[src^='//player.vimeo.com'], iframe[src^='//www.youtube.com']"),
Vimeo ve Youtube desteği eklenmiş jQuery kodunun tam hali aşağıdaki gibidir:
// Tüm YouTube ve Vimeo videolarını bul var $allVideos = $("iframe[src^='//player.vimeo.com'], iframe[src^='//www.youtube.com']"), $fluidEl = $("body"); // Her video için en boy oranını belirler ve kaydeder $allVideos.each(function() { $(this) .data('aspectRatio', this.height / this.width) // sabit değer olarak varsa yükseklik ve genişliği kaldır .removeAttr('height') .removeAttr('width'); }); // Pencere yeniden boyutlandırıldığında çalıştır $(window).resize(function() { var newWidth = $fluidEl.width(); // Tüm videoları kendi en boy oranlarına göre yeniden boyutlandır $allVideos.each(function() { var $el = $(this); $el .width(newWidth) .height(newWidth * $el.data('aspectRatio')); }); }).resize();
WordPress avukat teması, avukatlar ve hukuk büroları için özel olarak tasarlanmış şablonlardır. Bu temalar, profesyonel…
WiseCP tema özelliği, kullanıcıların platformlarını özelleştirmelerini ve markalarına uygun hale getirmelerini sağlayan önemli bir bileşendir.…
WiseCP Nedir? WiseCP Nedir, Türkiye'nin ilk ve tek yerli bir web barındırma hizmeti, sunucu yönetimi…
Genellikle Windows ve Mac OS işletim sistemli bilgisayarlarda WordPress tema geliştiricileri localhost kurulumu yapmak için…
Her birey zaman zaman şifrelerini güncellemelidir. WordPress yönetici şifresini değiştirmek oldukça basit bir işlemdir, ancak…
Emlak temaları hakkında daha fazla bilgi edinmek için sizleri ücretsiz WordPress emlak teması serimize davet…
Bu web sitesinde çerezler kullanılıyor.