2013-07-04 4 views
2

S'il vous plaît jeter un oeil à ce violon http://jsfiddle.net/rwbcf/problème vidéo HTML5 étrange

Si nous avons 16: 9:

enter image description here

problème se produit lorsque nous avons affichage avec un rapport d'aspect autre que 16: 9 .

Vous pouvez laisser un grand espace vide en bas de la vidéo et tant que nous redimensionnons la fenêtre du navigateur (obtenir une largeur plus petite), l'espace vide se développe de plus en plus.

enter image description here

est-il une solution comme mise à l'échelle, ou le recadrage et le zoom pour supprimer cet espace vide? Je ne peux pas comprendre. Merci à l'avance

HTML

<div id="video-viewport"> 

     <video id="bg" autoplay loop preload="none" tabindex="0"> 

      <source src="http://goo.gl/MkY4i" type="video/mp4" /> 

     </video> 
</div> 

CSS

html, body { 
    min-width:100%; 
    background:#000; 
    overflow:hidden; 
} 

body{ 
    margin: 0; 
    padding: 0 ; 
} 
#bg { 
    width:100%; 
    height:auto; 
} 

#video-viewport { 
    overflow: hidden; 
    width:100%; 
    height:100%;  
    z-index: -1; /* for accessing the video by click */ 
} 
+1

pour autant que je sache, va essayer de jouer à son format natif de la vidéo à moins que forces à déformer. mettre de la hauteur/largeur sur la vidéo, par ex. 100% pour les deux, il va donc essayer de suivre le dimensionnement de la fenêtre. Bien sûr, cela va vite paraître moche si vous changez la fenêtre à un ratio goofy –

+1

@MarcB mise à l'échelle et le remplissage, ou la mise à l'échelle et le recadrage peut faire le travail – heron

Répondre

4

La spécification de l'élément vidéo dit que cela devait se produire, il est l'équivalent du CSS suivant:

video { object-fit: contain; } 

Vous pouvez changer cela si cela ne vous dérange pas le rapport d'aspect étant ignoré:

video { object-fit: fill; } 

Ou si vous voulez zoomer efficacement (préserver la ration d'aspect, mais les portions de culture)

video { object-fit: cover; } 

Vous pouvez check out browser support for the object-fit property.

+0

vous feriez mieux de l'essayer d'abord violon l'écriture comme réponse. Cela ne fonctionne pas du tout – heron

+0

Avez-vous lu le lien sur le support du navigateur? J'ai inclus cela parce que cette fonctionnalité a un faible support aujourd'hui. – Fenton

1

J'ai exactement le même problème, bien que l'espace vide apparaisse au-dessus et en dessous comme dans un film panoramique - c'est un comportement complètement indésirable.

Réglage: vidéo {object-fit: fill; }

fonctionne parfaitement bien pour moi!

0

pour supprimer l'espace noir, taille de la vidéo devrait être la taille du conteneur afin d'ajouter ceci à votre css:

#video-viewport { 
    width:inherit; 
    height:inherit;  
}