swiper轮播嵌入视频

swiper轮播嵌入视频:

效果:正常swiper自动播放;子元素swiper-slide有个别带有视频,并且默认初始化为不播放状态。

效果1:在视频未播放状态,用户点击视频,视频会进行播放;此时,swiper会停止自动轮播;

效果2:在视频播放状态,用户点击视频,视频会进行停止播放;此时,swiper会自动轮播并切换到下一屏;

效果3:视频播放结束,轮播会重新开始自动轮播;

前置条件:

引入swiper3和jquery

 

效果演示:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta content="IE=edge, chrome=1" http-equiv="x-ua-compatible">
    <meta content="webkit" name="renderer">
    <meta content="telephone=no" name="format-detection">
    <meta content="initial-dpr=1" name="hotcss">
    <meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport">
    <link href="css/swiper.min.css" rel="stylesheet" type="text/css">
    <!--Jquery-->
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <!--basic-->
    <script src="js/swiper.min.js" type="text/javascript"></script>
</head>
<style>

.video-section {}
.video-section .videoContent {
    display: none;
}
.video-section .video-details {
    padding: 10px;
    background: #FFFFFF;
    border-radius: 5px;
    box-sizing: border-box;
}
.video-section .video {
}
.video-section .poster {
    position: relative;
    display: block;
    width: 100%;
}
.video-section .poster:after {
    content: '';
    transition: all .3s;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #000000;
    opacity: .4;
    z-index: 1;
}

.video-section .poster .video-bg {
    display: block;
}
.video-section .poster:hover .icon-play {
    opacity: .5;
}
.video-section .icon-play {
    position: absolute;
    top: calc(50% - 25px);
    left: calc(50% - 25px);
    z-index: 2;
    width: 50px;
    height: 50px;
    transition: all .3s;
    opacity: 1;
}
</style>
<body>
<main class="container">
    <!-- S 视频 section-->
    <section class="video-section index-section section" id="video-section">
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide">
                    <div class="video">
                        <a class="poster">
                            <img class="video-bg" src="images/Community-media4_03.png" width="100%"/>
                            <div class="icon-play">
                                <img src="images/icon-play.png" width="100%"/>
                            </div>
                        </a>
                        <video class="videoContent" controls poster="images/Community-media4_03.png" width="100%">
                            <source src="images/movie.mp4" type="video/mp4" width="100%"/>
                        </video>
                    </div>
                </div>
                <div class="swiper-slide">
                    <div class="video">
                        <a class="poster">
                            <img class="video-bg" src="images/Community-media4_03.png" width="100%"/>
                            <div class="icon-play">
                                <img src="images/icon-play.png" width="100%"/>
                            </div>
                        </a>
                        <video class="videoContent" controls poster="images/Community-media4_03.png" width="100%">
                            <source src="images/movie.mp4" type="video/mp4" width="100%"/>
                        </video>
                    </div>
                </div>
            </div>
            <div class="swiper-pagination"></div>
        </div>
    </section>
    <!-- E 视频 section-->
</main>
</body>
<script>
    $(function () {

        // S 视频 video-section

        // 第2屏轮播
        var videoSection = new Swiper('#video-section .swiper-container', {
            autoplay: 8000,
            speed: 800,
            loop: true,
            observer: true,//修改swiper自己或子元素时,自动初始化swiper
            observeParents: true,
            autoplayDisableOnInteraction: false,
            pagination: '#video-section .swiper-pagination',
            paginationClickable: true,
        });
        videoSection.on('SlideChangeStart',function () {
            $('.videoContent').hide();
            $('.poster').show();
            $('.video video')[0].pause();
            videoSection.startAutoplay();
            // alert(swiper.activeIndex) //切换结束时,告诉我现在是第几个slide

        })
        $('.video').on('click', function () {
            if ($(this).children('.videoContent').is(':hidden')) {
                $(this).children('.videoContent').show();
                $(this).children('video')[0].play()
                $(this).children('.poster').hide();
                videoSection.stopAutoplay();
            } else {
                $(this).children('.videoContent').hide();
                $(this).children('.poster').show();
                $(this).children('video')[0].pause()
                videoSection.startAutoplay();
                setTimeout(()=>{
                    videoSection.slideNext();
                },500)
            }
        })
        // 监听视频播放
        $('.video video').on('ended', function () {
            $('.video  .videoContent').hide();
            $('.video .poster').show();
            videoSection.startAutoplay();
            videoSection.slideNext();
        })
        // E 视频
    })
</script>
</html>

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值