• swiper轮播嵌入视频


    swiper轮播嵌入视频:

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

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

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

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

    前置条件:

    引入swiper3和jquery

     

    效果演示:

    代码:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="utf-8">
    5. <meta content="IE=edge, chrome=1" http-equiv="x-ua-compatible">
    6. <meta content="webkit" name="renderer">
    7. <meta content="telephone=no" name="format-detection">
    8. <meta content="initial-dpr=1" name="hotcss">
    9. <meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport">
    10. <link href="css/swiper.min.css" rel="stylesheet" type="text/css">
    11. <!--Jquery-->
    12. <script src="js/jquery.min.js" type="text/javascript"></script>
    13. <!--basic-->
    14. <script src="js/swiper.min.js" type="text/javascript"></script>
    15. </head>
    16. <style>
    17. .video-section {}
    18. .video-section .videoContent {
    19. display: none;
    20. }
    21. .video-section .video-details {
    22. padding: 10px;
    23. background: #FFFFFF;
    24. border-radius: 5px;
    25. box-sizing: border-box;
    26. }
    27. .video-section .video {
    28. }
    29. .video-section .poster {
    30. position: relative;
    31. display: block;
    32. width: 100%;
    33. }
    34. .video-section .poster:after {
    35. content: '';
    36. transition: all .3s;
    37. width: 100%;
    38. height: 100%;
    39. position: absolute;
    40. top: 0;
    41. left: 0;
    42. background: #000000;
    43. opacity: .4;
    44. z-index: 1;
    45. }
    46. .video-section .poster .video-bg {
    47. display: block;
    48. }
    49. .video-section .poster:hover .icon-play {
    50. opacity: .5;
    51. }
    52. .video-section .icon-play {
    53. position: absolute;
    54. top: calc(50% - 25px);
    55. left: calc(50% - 25px);
    56. z-index: 2;
    57. width: 50px;
    58. height: 50px;
    59. transition: all .3s;
    60. opacity: 1;
    61. }
    62. </style>
    63. <body>
    64. <main class="container">
    65. <!-- S 视频 section-->
    66. <section class="video-section index-section section" id="video-section">
    67. <div class="swiper-container">
    68. <div class="swiper-wrapper">
    69. <div class="swiper-slide">
    70. <div class="video">
    71. <a class="poster">
    72. <img class="video-bg" src="images/Community-media4_03.png" width="100%"/>
    73. <div class="icon-play">
    74. <img src="images/icon-play.png" width="100%"/>
    75. </div>
    76. </a>
    77. <video class="videoContent" controls poster="images/Community-media4_03.png" width="100%">
    78. <source src="images/movie.mp4" type="video/mp4" width="100%"/>
    79. </video>
    80. </div>
    81. </div>
    82. <div class="swiper-slide">
    83. <div class="video">
    84. <a class="poster">
    85. <img class="video-bg" src="images/Community-media4_03.png" width="100%"/>
    86. <div class="icon-play">
    87. <img src="images/icon-play.png" width="100%"/>
    88. </div>
    89. </a>
    90. <video class="videoContent" controls poster="images/Community-media4_03.png" width="100%">
    91. <source src="images/movie.mp4" type="video/mp4" width="100%"/>
    92. </video>
    93. </div>
    94. </div>
    95. </div>
    96. <div class="swiper-pagination"></div>
    97. </div>
    98. </section>
    99. <!-- E 视频 section-->
    100. </main>
    101. </body>
    102. <script>
    103. $(function () {
    104. // S 视频 video-section
    105. // 第2屏轮播
    106. var videoSection = new Swiper('#video-section .swiper-container', {
    107. autoplay: 8000,
    108. speed: 800,
    109. loop: true,
    110. observer: true,//修改swiper自己或子元素时,自动初始化swiper
    111. observeParents: true,
    112. autoplayDisableOnInteraction: false,
    113. pagination: '#video-section .swiper-pagination',
    114. paginationClickable: true,
    115. });
    116. videoSection.on('SlideChangeStart',function () {
    117. $('.videoContent').hide();
    118. $('.poster').show();
    119. $('.video video')[0].pause();
    120. videoSection.startAutoplay();
    121. // alert(swiper.activeIndex) //切换结束时,告诉我现在是第几个slide
    122. })
    123. $('.video').on('click', function () {
    124. if ($(this).children('.videoContent').is(':hidden')) {
    125. $(this).children('.videoContent').show();
    126. $(this).children('video')[0].play()
    127. $(this).children('.poster').hide();
    128. videoSection.stopAutoplay();
    129. } else {
    130. $(this).children('.videoContent').hide();
    131. $(this).children('.poster').show();
    132. $(this).children('video')[0].pause()
    133. videoSection.startAutoplay();
    134. setTimeout(()=>{
    135. videoSection.slideNext();
    136. },500)
    137. }
    138. })
    139. // 监听视频播放
    140. $('.video video').on('ended', function () {
    141. $('.video .videoContent').hide();
    142. $('.video .poster').show();
    143. videoSection.startAutoplay();
    144. videoSection.slideNext();
    145. })
    146. // E 视频
    147. })
    148. </script>
    149. </html>

  • 相关阅读:
    LeetCode:1337. 矩阵战斗力最弱的 K 行、11. 盛最多水的容器、剑指 Offer 51. 数组中的逆序对题解
    redis6.2(二)Redis的新数据类型、使用java语言操作Redis
    iPhone或在2024开放第三方应用商店。
    xml 里面判断int类型,String类型不为空
    Linux+qt:获取.so自身的路径(利用dladdr)
    4.drf-版本管理
    什么情况下你该考虑离职?
    康耐视深度学习ViDi-Plugins菜单介绍
    JavaSE - 数据类型
    盘点3种Python网络爬虫过程中的中文乱码的处理方法
  • 原文地址:https://blog.csdn.net/weixin_40667613/article/details/125502087