cliquez sur un bouton pour modifier l' poster
vidéo et les attributs src
après le clic, la hauteur de la vidéo devient 0
- une courte période - mais suffisamment pour produire un effet laid sur toute la page
comment éviter cela?
note - lorem.mp4
et ipsum.mp4
ont la même résolution et les mêmes dimensions
var player = $('#player'); $('button').on('click', function(){ player.attr('poster', 'ipsum.jpg'); player.attr('src', 'ipsum.mp4'); player[0].play(); });
js
<video class='vtop' id='player' controls poster='lorem.jpg'> <source src='lorem.mp4' type='video/mp4'> </video>
3 Réponses :
J'ai essayé votre code et j'y ai ajouté un fichier css et j'ai donné à la vidéo une hauteur fixe:
video { height: 400px; }
Je pense que c'est suffisant et je ne vois aucun effet spécial lorsque je clique sur le bouton.
et la vidéo ne répond pas dans ce cas
La hauteur est modifiée car la hauteur de votre lecteur vidéo dépend de la hauteur de la vidéo. Et lorsque vous changez la hauteur du lecteur vidéo src
, la hauteur change également. Ce que vous devez faire, c'est simplement spécifier la height
de votre balise video
.
non, la nouvelle vidéo est de la même hauteur. De plus, la hauteur fixe ne répond pas
Vous pouvez alors spécifier la hauteur min. Donc pour le moment où une vidéo est chargée, le lecteur aura une valeur min-height. si vous voulez vraiment que le joueur conserve l'ancienne hauteur, sur votre gestionnaire de clics, vous pouvez mesurer la hauteur actuelle avant le changement de src, l'appliquer, puis la supprimer lors de l'événement loadeddata
$('button').on('click', function(){ let x = player.height(); player.height(x); }); strange logic but it works