To jest dość stary, ale ludzie wciąż potrzebują pomocy tutaj. Też potrzebowałem tego, więc stworzyłem pióro mojego rozwiązania, które powinno pomóc - http://codepen.io/MikeMooreDev/pen/QEEPMv
W przykładzie pokazano dwie wersje tego samego filmu, jeden w standardzie, a drugi przycięty i wyśrodkowany, aby pasował do rozmiaru pełnego elementu rodzica bez pokazywania ohydnych czarnych pasków.
Musisz użyć trochę javascript, aby obliczyć nową szerokość wideo, ale to naprawdę proste, jeśli znasz współczynnik proporcji.
HTML
<div id="videoWithNoJs" class="videoWrapper">
<iframe src="https://www.youtube.com/embed/ja8pA2B0RR4" frameborder="0" allowfullscreen></iframe>
</div>
CSS - Wysokość i szerokość o tym videoWrapper może być dowolna, mogą być procenty, jeśli sobie tego życzą
.videoWrapper {
height:600px;
width:600px;
position:relative;
overflow:hidden;
}
.videoWrapper iframe {
height:100%;
width:100%;
position:absolute;
top:0;
bottom:0;
}
jQuery
$(document).ready(function(){
// - 1.78 is the aspect ratio of the video
// - This will work if your video is 1920 x 1080
// - To find this value divide the video's native width by the height eg 1920/1080 = 1.78
var aspectRatio = 1.78;
var video = $('#videoWithJs iframe');
var videoHeight = video.outerHeight();
var newWidth = videoHeight*aspectRatio;
var halfNewWidth = newWidth/2;
video.css({"width":newWidth+"px","left":"50%","margin-left":"-"+halfNewWidth+"px"});
});
Może to być również wyzwalane przy zmianie rozmiaru, aby zapewnić, że pozostanie ono responsywne. Najłatwiejszym (prawdopodobnie nie najbardziej wydajnym) sposobem na zrobienie tego jest poniższy.
$(window).on('resize', function() {
// Same code as on load
var aspectRatio = 1.78;
var video = $('#videoWithJs iframe');
var videoHeight = video.outerHeight();
var newWidth = videoHeight*aspectRatio;
var halfNewWidth = newWidth/2;
video.css({"width":newWidth+"px","left":"50%","margin-left":"-"+halfNewWidth+"px"});
});
OK, ale co, jeśli ekran jest zbyt wysoki? Rozumiem, że jeśli wideo zostało osadzone w div, div dostosuje się i zmieni rozmiar zgodnie z rozmiarem ekranu. Ale w tym przypadku ciało jest kontenerem i chcę, żeby film wypełnił go całkowicie. Nie mogę kontrolować jego rozmiaru, ponieważ zależy to od rozmiaru ekranu/przeglądarki ... – Owly