테스트 사이트 - 개발 중인 베타 버전입니다

video를 연속으로 재생

· 6년 전 · 2592

video 객체에 onended 이벤트가 있네요

다음과 같은 코드로 연속재생을 해봤습니다.

[code]

<style>
#video-box {min-width:1200px; position:relative;}
#video-box .main-banner {display:none; width:100%; height:750px;  overflow:hidden;position:relative; background-color:#000;}
#video-box .main-banner.open{display:block;}
#video-box .main-banner video {position:absolute;width:100%;top:50%; left:50%;transform:translate(-50%,-50%);border:0;}
#video-box .dot-box {position:absolute; width:100%; bottom:0; text-align:center;}
#video-box .dot-box a{display:inline-block; margin:0.5em; width:20px;height:20px; border-radius:50%; background-color:#06F;text-indent:-9999px;}
#video-box .dot-box a.open{background-color:yellowgreen;}
@media screen and (max-width:1400px) { #video-box .main-banner {height:550px;} }
</style>
<div id="video-box">
    <div class="main-banner open">
        <video autoplay muted>
            <source src="https://www.bodyfriend.co.kr/video/1.mp4" type="video/mp4">
        </video>
    </div>
    <div class="main-banner">
        <video muted>
            <source src="https://www.bodyfriend.co.kr/video/main02.mp4" type="video/mp4">
        </video>
    </div>
    <div class="main-banner">
        <video muted>
            <source src="https://www.bodyfriend.co.kr/video/main03.mp4" type="video/mp4">
        </video>
    </div>
    <div class="dot-box"></div>
</div>
<script>
$(function() {
    var len = $('.main-banner').length
    $('.main-banner').each(function(index, element) {
           $(this).addClass('v' + index);
        var video = $(this).find('video')[0];
        video.onended = function(e) {
            $('.main-banner').removeClass('open');
            $('.main-banner.v'+((index+1) % len)).addClass('open');
            $('.main-banner.v'+((index+1) % len)).find('video')[0].play();
            $('#video-box a.dot').removeClass('open');
            $('#video-box a.dot.v'+((index+1) % len)).addClass('open');
        };
        $('#video-box .dot-box').append('<a href="#" class="dot v'+index+'" data-idx="'+index+'">'+(index+1)+'번째 비디오</a>');
    });

    $('#video-box a.dot').click(function(e) {
        var idx = $(this).data('idx');
        $('.main-banner.open').find('video')[0].pause();
        $('.main-banner').removeClass('open');
        $('.main-banner.v'+(idx % len)).addClass('open');
        $('.main-banner.v'+(idx % len)).find('video')[0].play();
        $('#video-box a.dot').removeClass('open');
        $('#video-box a.dot.v'+(idx % len)).addClass('open');
    });
    $('#video-box a.dot.v0').addClass('open');
});
</script>

[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
17819
17818
17817
17816
17814
17811
17810
17809
17808
17803
17799
17798
17797
17795
17794
17793
JavaScript JSON Beautify
17790
17789
17786
17774
17760
17755
17750
17729
17722
17714
17708
17686
17676
17666