티로그

video를 연속으로 재생

· 2018-12-06 (목) 17:47:57 · 3194

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]

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

개발자팁

5,403건

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
MySQL 21-04-20 조회 2,522
기타 21-04-18 조회 3,390
MySQL 21-04-17 조회 2,689
MySQL 21-04-16 조회 2,388
MySQL 21-04-15 조회 2,167
MySQL 21-04-15 조회 2,000
OS 21-03-31 조회 5,306
웹서버 21-03-24 조회 2,867
웹서버 21-03-18 조회 2,872
웹서버 21-03-11 조회 3,102
웹서버 21-03-08 조회 2,407
웹서버 21-03-02 조회 2,857
웹서버 21-03-02 조회 3,229
MySQL 21-02-25 조회 3,650
웹서버 21-02-17 조회 8,142
웹서버 21-02-13 조회 2,258
OS 21-01-20 조회 7,439
PHP 21-01-12 조회 5,372
JavaScript 21-01-12 조회 3,014
MySQL 20-11-27 조회 4,515
MySQL 20-11-25 조회 3,720
PHP 20-11-24 조회 2,985
PHP 20-11-23 조회 3,968
PHP 20-11-19 조회 5,044
PHP 20-11-13 조회 5,287
웹서버 20-09-26 조회 7,928
기타 20-08-07 조회 5,863
MySQL 20-08-05 조회 3,915
기타 20-07-15 조회 2,966
기타 20-07-14 조회 3,568