Questo è piuttosto vecchio, ma la gente può ancora bisogno di aiuto qui. Ho bisogno di questo anche così ho creato una penna della mia soluzione che dovrebbe aiutare - http://codepen.io/MikeMooreDev/pen/QEEPMv
L'esempio mostra due versioni dello stesso video, una di serie e la seconda ritagliata e centrata per adattarsi alla dimensione dell'elemento genitore completo senza mostrare le orribili barre nere.
È necessario utilizzare alcuni javascript per calcolare una nuova larghezza per il video, ma è davvero facile se si conoscono le proporzioni.
HTML
<div id="videoWithNoJs" class="videoWrapper">
<iframe src="https://www.youtube.com/embed/ja8pA2B0RR4" frameborder="0" allowfullscreen></iframe>
</div>
CSS - L'altezza e la larghezza o l'videoWrapper può essere qualsiasi cosa, possono essere percentuali se lo desiderate
.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"});
});
Questo può anche essere attivato su ridimensionamento per assicurarsi che rimanga reattivo. Il modo più semplice (probabilmente non il più efficiente) per farlo è il seguente.
$(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 ma cosa succede se lo schermo è troppo alto? Capisco che se il video fosse incorporato in un div, il div si adatterebbe e ridimensionerebbe secondo le dimensioni dello schermo. Ma, in questo caso, il corpo è il contenitore e voglio che il video lo riempia completamente. Non posso avere il controllo delle sue dimensioni perché dipende dalle dimensioni dello schermo/del browser ... – Owly