web-dev-qa-db-fra.com

Superposer le bouton Lecture sur la vidéo

J'ai actuellement un script qui lit et met en pause une vidéo onclick . Ce que j'aimerais faire est de superposer un bouton de lecture sur la vidéo au début et à la pause, et de faire disparaître ce même bouton lors de la lecture encore.

Toute suggestion serait appréciée.

HTML

<video class="video"><source src="http://e14aaeb709f7cde1ae68-a1d0a134a31b545b257b15f8a8ba5726.r70.cf3.rackcdn.com/projects/31432/1427815464209-bf74131a7528d0ea5ce8c0710f530bb5/1280x720.mp4" type="video/mp4">
</video>

CSS

.video {
width: 50%;
border: 1px solid black;
}

JS

// Plays and pauses video on click

$('.video').click(function(){this.paused?this.play():this.pause();});
12
Sam Pittman

Si vous voulez avoir une superposition avec du contenu que vous pouvez éditer, cela vous conviendra peut-être: https://jsfiddle.net/svArtist/9ewogtwL/

$('.video').parent().click(function () {
    if($(this).children(".video").get(0).paused){
        $(this).children(".video").get(0).play();
        $(this).children(".playpause").fadeOut();
    }else{
       $(this).children(".video").get(0).pause();
        $(this).children(".playpause").fadeIn();
    }
});
.video {
    width: 100%;
    border: 1px solid black;
}
.wrapper{
    display:table;
    width:auto;
    position:relative;
    width:50%;
}
.playpause {
    background-image:url(http://png-4.findicons.com/files/icons/2315/default_icon/256/media_play_pause_resume.png);
    background-repeat:no-repeat;
    width:50%;
    height:50%;
    position:absolute;
    left:0%;
    right:0%;
    top:0%;
    bottom:0%;
    margin:auto;
    background-size:contain;
    background-position: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
    <video class="video">
        <source src="http://e14aaeb709f7cde1ae68-a1d0a134a31b545b257b15f8a8ba5726.r70.cf3.rackcdn.com/projects/31432/1427815464209-bf74131a7528d0ea5ce8c0710f530bb5/1280x720.mp4" type="video/mp4" />
    </video>
    <div class="playpause"></div>
</div>

29
Ben Philipp

Je pense que je n'aurai qu'à expliquer cela.

quand .video est cliqué et que la vidéo est en pause ->
.video{visibility: hidden;}
lorsque .video est cliqué et que la vidéo est en cours d'exécution ->
.video{visibility: visible;} 

Si vous voulez plus de code, veuillez commenter

1
Julian Avar

Le clic sur le bouton marche aussi très bien… et réduit le code jQuery. .toggle()

0
Vishal Kumar Sahu