国产沈阳熟女视频|骚视频97网站一区日本在线视频|久1社区在线视频|综合久久国外自产拍无码精品视频|亚洲欧美Tv先锋|综合五月天网址制服丝袜在线露脸|1024欧美手机视频我不卡|日本二区欧美亚洲国产|丁香五月婷婷五月|综合 另类 一区

        <rt id="hg899"></rt>
        <bdo id="hg899"><tbody id="hg899"></tbody></bdo>
        284292114@qq.com 中國站
        行業(yè)新聞 網站建設 網絡推廣 首頁>新聞中心>網站建設

        完整的SWIPER支持視頻輪播的代碼

        時間:2025-10-12   訪問量:0

        以下是完整的一個代碼,并測試了安卓,鴻蒙,IOS系統(tǒng)都可以播放。

         <div class="swiper-container index-banner">
            <div class="swiper-wrapper">
              {hmcms:list num=10  scode=60 order='sorting asc,id desc'}
               {hmcms:if('[list:enclosure drophtml=1 lencn=5]'>'')}  
               <div class="swiper-slide" >
                    <video class="video" src="[list:enclosure]"  
                     muted 
                     autoplay 
                     playsinline 
                      webkit-playsinline 
                     x5-playsinline 
                     preload="auto"
                     poster="[list:ico]"
                     ></video>
                       <div class="container">
                          <div class="position-absolute text-light text-center px-3" style="top:30%;">
                              <h1 class="fs-18 wow slideInUp fweight mb-4">[list:title]</h1>
                              <h2 class="fs-16 wow slideInUp mb-4">[list:subtitle]</h2>
                              <h3 class="fs-14 fs-sm-18 wow slideInUp">[list:content]</h3>
                          </div>
                      </div>
                  </div>
                   {else}
                   <div class="swiper-slide" >
                    <a href="[list:outlink]">
                      <img src="[list:ico]" class="d-block w-100" >
                    </a>
                      <div class="container">
                        <div class="position-absolute text-light text-center px-3" style="top:30%;">
                        <h1 class="fs-18 wow slideInUp fweight mb-4">[list:title]</h1>
                        <h2 class="fs-16 wow slideInUp mb-4">[list:subtitle]</h2>
                        <h3 class="fs-14 fs-sm-18 wow slideInUp">[list:content]</h3>
                        </div>
                    </div>
                  </div>
                      {/hmcms:if}
           {/hmcms:list}
            </div>
            <div class="swiper-button-prev d-none d-md-block"></div>
            <div class="swiper-button-next d-none d-md-block"></div>
            <div class="swiper-pagination"></div>
         
        </div>
         
         
        <script>
        var mySwiper = new Swiper('.index-banner', {
          direction: 'horizontal',
          loop: true,
          speed: 1500,
          // 關閉 swiper 的 autoplay,使用視頻結束來切換
          pagination: { el: '.swiper-pagination', clickable: true },
          navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' },
          on: {
            init: function () {
              playCurrentVideo(this);
            },
            // 等切換動畫結束后再播放(避免動畫中找不到 active)
            slideChangeTransitionEnd: function () {
              playCurrentVideo(this);
            }
          }
        });
        
        // 播放當前 activity 的視頻,暫停其它并清理事件處理器
        function playCurrentVideo(swiperInstance) {
          // 先暫停所有視頻并清理 onended(避免重復觸發(fā))
          document.querySelectorAll('.swiper-slide video').forEach(function(v){
            try { v.pause(); } catch(e){}
            try { v.onended = null; } catch(e){}
          });
        
          // 取當前 active slide(兼容 loop 后的克?。?  var currentSlide = document.querySelector('.swiper-slide-active');
          if (!currentSlide) return;
        
          var currentVideo = currentSlide.querySelector('video');
          if (currentVideo) {
            // 用 onended 屬性綁定(覆蓋舊的處理器,避免多次綁定)
            currentVideo.onended = function() {
              // 切到下一頁(Swiper 會觸發(fā) slideChangeTransitionEnd,從而播放下一個視頻)
              swiperInstance.slideNext();
            };
        
            // 觸發(fā)播放(在微信/QQ 等也許被攔截,先嘗試)
            currentVideo.play().catch(function(err){
              // 被瀏覽器攔截(例如微信需要手勢),打印以便調試
              console.log('video.play() 被攔截或出錯:', err);
            });
          } else {
            // 不是視頻(比如圖片),設置一個簡單的停留時間后切換(可按需調整)
            setTimeout(function() {
              swiperInstance.slideNext();
            }, 3000);
          }
        }
        
        // 兼容微信/QQ 內核:在 JSBridgeReady 或首次觸摸時,嘗試播放當前視頻
        function playCurrentOnWeixin() {
          var active = document.querySelector('.swiper-slide-active');
          if (!active) return;
          var v = active.querySelector('video');
          if (v) {
            v.play().catch(function(err){
              console.log('微信/QQ play 被攔截:', err);
            });
          }
        }
        document.addEventListener("WeixinJSBridgeReady", function(){ playCurrentOnWeixin(); }, false);
        document.addEventListener("touchstart", function(){ playCurrentOnWeixin(); }, { once: true });
        </script>


        另外推薦一個PC端的輪播視頻,:https://www.jq22.com/jquery-info20585

        但是代碼最好修改一下,以下是我修改后更實用一點的。

        <link rel="stylesheet" type="text/css" href="/static/css/style.css">
        <div class='o-sliderContainer d-none d-md-block' id="pbSliderWrap0" style="margin:0; background:none!important;">
          <div class='o-slider' id='pbSlider0' style="background:none!important; opacity: 1; position: relative;">
           {hmcms:list num=5 scode=60 order='sorting asc,id desc'} 
              {hmcms:if('[list:enclosure drophtml=1 lencn=5]'>'')}  
            <div class="o-slider--item" style="background: url([list:ico]) center center; background-size: cover;">      
               <video class='video' autoplay muted loop poster="[list:ico]" >
                  <source src="[list:enclosure]" type="video/mp4">
                </video>
                <div class="o-slider-textWrap">
                  <div class="container">
                       <div class="position-absolute container text-light text-center" style="top:30%;">
                        <h1 class="fs-30 fs-sm-60 wow slideInUp fweight mb-5">[list:title]</h1>
                        <h2 class="fs-18 fs-sm-24 wow slideInUp mb-5">[list:subtitle]</h2>
                        <h3 class="fs-16 fs-sm-18 wow slideInUp">[list:content]</h3>
                        </div>
                    </div>
                </div>
            </div>
              {else}
                <div class="o-slider--item" >          
                       <img src="[list:ico]" class="w-100" alt="">        
                     <div class="index-bannertxt">
                      <div class="container">
                            <div class="text-light text-center"  >
                            <h1 class="fs-30 fs-sm-60 wow slideInUp fweight mb-5">[list:title]</h1>
                            <h2 class="fs-18 fs-sm-24 wow slideInUp mb-5">[list:subtitle]</h2>
                            <h3 class="fs-16 fs-sm-18 wow slideInUp">[list:content]</h3>
                            </div>
                        </div>
                    </div>
              </div> 
             {/hmcms:if}
           {/hmcms:list}
         
          </div>
        
        </div>
        
        
        以下是引用JS,自己修改路徑。
        <script src='/static/js/hammer.min.js'></script>
        <script src='/static/js/slider.js'></script>
        <script>
          $('#pbSlider0').pbTouchSlider({
            slider_Wrap: '#pbSliderWrap0',
            slider_Threshold: 10,
            slider_Speed:600,
            slider_Ease:'ease-out',
            slider_Drag : true,//拖動
            auto:true,//是否自動滾動
            autoTime:6000,//設置圖片自動時間
            slider_Arrows: {
              enabled : true//箭頭
            },
            slider_Dots: {//顯示點不
              class :'.o-slider-pagination',
              enabled : true,
              preview : false
            },
            
          });
        </script>
        
        以下是修改過的CSS樣式:
        
        @-webkit-keyframes ball-scale-multiple {
          0% {
            transform: scale(0) rotate(-90deg);
            opacity: 0;
          }
          5% {
            opacity: 1;
          }
          100% {
            transform: scale(1.2) rotate(90deg);
            opacity: 0;
          }
        }
        @keyframes ball-scale-multiple {
          0% {
            transform: scale(0) rotate(-90deg);
            opacity: 0;
          }
          5% {
            opacity: 1;
          }
          100% {
            transform: scale(1.2) rotate(90deg);
            opacity: 0;
          }
        }
         
        .loaderWrap {
          position: absolute;
          left: 0;
          top: 0;
          right: 0;
          bottom: 0; 
          z-index: 123333333;
        }
        
         
        .ball-scale-multiple {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, 50%);
        }
        .video{
        	width: 100%;
          height: 100%;
          object-fit: cover;
           display: block; /* 加上這句可消除默認的 inline 間隙 */
        }
         
        .ball-scale-multiple > div {
          
          border-radius: 0;
          animation-fill-mode: both;
          position: absolute;
          left: -60px;
          top: -60px;
          opacity: 0;
          margin: 0;
          width: 120px;
          height: 120px;
          animation: ball-scale-multiple 1s 0s linear infinite;
           
        }
         
        .ball-scale-multiple > div:nth-child(1) {
          animation-delay: -1s;
        }
         
        .ball-scale-multiple > div:nth-child(2) {
          animation-delay: -0.8s;
        }
         
        .ball-scale-multiple > div:nth-child(3) {
          animation-delay: -0.6s;
        }
         
        .ball-scale-multiple > div:nth-child(4) {
          animation-delay: -0.4s;
        }
         
        .ball-scale-multiple > div:nth-child(5) {
          animation-delay: -0.2s;
        }
        
         
        .a-container {
          width: 1170px;
          margin: 20px auto;
        }
        
         
        .a-1_2 {
          width: 48%;
          display: inline-block;
          margin: 0 1%;
        }
        
        
         
        .o-sliderContainer {
          overflow: hidden;
          position: relative;
          width: 100%;
          min-height: 200px; 
          float: left;
          margin: 30px 0;
          height: 1080px
        }
         
        .o-sliderContainer.hasShadow {
          box-shadow: 0 39px 22px -29px rgba(0, 0, 0, 0.2);
        }
         
        .o-sliderContainer:hover .o-slider-next {
          right: 20px;
        }
         
        .o-sliderContainer:hover .o-slider-prev {
          left: 20px;
        }
        
         
        .o-slider--item {
          height: 100%;
          width: 0;
          background-position: center center;
          background-repeat: no-repeat;
          background-size: cover;
          position: relative;
          float: left;
          transition: all 0.2s cubic-bezier(0.7, 0.18, 0.53, 0.75);
          opacity: 1; 
          transform-origin: center center;
          z-index: 99;
          overflow: hidden;
        }
         
        .o-slider--item::after {
          content: '';
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;  
          z-index: 0;
          height: 100%;
        }
        
        .o-slider--item img{
           width: 100%;
           height: 100%;
           object-fit: cover;
        }
        
        .index-bannertxt{
           display: block;
           width: 100%;
           position: absolute;
           left:0;
           top:30%;
           z-index: 999;
           height: auto;
        }
        
         
        .o-slider--item.isActive {
          opacity: 1; 
          background: none;
        }
         
        .o-slider--item.isMoving {
          opacity: 1; 
          z-index: 100;
        }
        
         
        .o-slider {
          width: auto;
          position: relative;
          display: none;
        }
         
        .o-slider.isVisible {
          display: table; 
        }
         
        .o-slider.isDraggable {
          cursor: move;
        }
        
         
        .o-slider-textWrap {
          left: 2%;
          bottom: 45px;
          height: auto;
          position: absolute;
          text-align: left;
          padding:0;
          width: 100%;
          transition: all 0.4s;
          opacity: 1;
          overflow: visible;
          perspective: 1000px;
          z-index: 2;
        }
        
         
        .isActive .o-slider-textWrap::after {
          width: 100%;
          left: 0;
        }
         
        .isActive .o-slider-paragraph {
          opacity: 1;
          transform: perspective(0) rotateY(0) translate(0, 0);
          transform-origin: 0 0;
          transition-delay: 1s;
        }
         
        .isActive .o-slider-title {
          opacity: 1;
          transform: perspective(0) rotateY(0) translate(0, 0);
          transform-origin: 0 0;
          transition-delay: 0.2s;
        }
         
        .isActive .o-slider-subTitle {
          opacity: 1;
          transform: perspective(0) rotateY(0) translate(0, 0);
          transform-origin: 0 0;
          transition-delay: 0.6s;
        }
        
         
        .o-slider-title {
          width: auto;
          margin: 0 0 5px 0;
          height: auto;
          color: #fff;
          text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
          font-size: 1.4rem;
          display: inline-block;
          padding: 0;
          transition: all 0.4s;
          transform-origin: 0 0;
          transform: perspective(1000px) rotateY(120deg) translate(100px, -100px);
          opacity: 0;
          position: relative;
          z-index: 1;
        }
        
         
        .o-slider-subTitle {
          width: auto;
          margin: 0 0 5px 0;
          height: auto;
          color: #fff;
          text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
          font-size: 1.4rem;
          display: inline-block;
          padding: 0;
          transition: all 0.4s;
          transform-origin: 0 0;
          transform: perspective(1000px) rotateY(120deg) translate(100px, -100px);
          opacity: 0;
          position: relative;
          z-index: 1;
          font-size: 1.2rem;
        }
        
         
        .o-slider-paragraph {
          width: auto;
          margin: 0 0 5px 0;
          height: auto;
          color: #fff;
          text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.2);
          font-size: 1.4rem;
          display: inline-block;
          padding: 0;
          transition: all 0.4s;
          transform-origin: 0 0;
          transform: perspective(1000px) rotateY(120deg) translate(100px, -100px);
          opacity: 0;
          position: relative;
          z-index: 1;
          font-size: 0.8rem;
          max-width: 100%;
          display: none;
        }
        
        
         
        
        
        
        
        
        
        
        @media screen and (min-width: 768px) {
         
          .o-slider-textWrap {
            left: 5%;
            width: 90%;
          }
        
         
          .o-slider-title {
            font-size: 1.8rem;
          }
        
         
          .o-slider-subTitle {
            font-size: 1.4rem;
          }
        
         
          .o-slider-paragraph {
            max-width: 60%;
            font-size: 1rem;
            display: block;
          }
        }
        @media screen and (min-width: 1024px) {
         
          .o-slider-pagination {
            bottom: 6%;
          }
        
         
          .o-slider-textWrap {
            left: 0px;
            width: 100%;
            top:00px;
          }
        
         
          .o-slider-title {
            font-size: 2rem;
          }
        
         
          .o-slider-subTitle {
            font-size: 1.6rem;
          }
        
          
          .o-slider-paragraph {
            max-width: 40%;
            font-size: 1.2rem;
          }
        }
         
        .a-divider {
          display: block;
          width: 100%;
          height: 1px;
          margin: 2px 0;
        
        }
        
         
        .o-slider-controls {
          display: none;
        }
         
        .o-slider-controls.isVisible {
          display: block;
        }
        
         
        .o-slider-pagination {
          bottom: 2%;
          left: 0;
          position: absolute;
          text-align: left;
          width: 100%;
          z-index: 1444000;
          margin: 0; 
          padding: 0;
           padding-left: 20px;
        }
         
        .o-slider-pagination > li { 
        	border-radius:5px;
          overflow: hidden;
          border:none;
          display: inline-block;
          position: relative;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
          height: 5px;
          width: 50px;
          margin-left: 10px;
          margin-right:10px;
          transition: all 250ms;
          cursor: pointer;
          background-clip: padding-box;
          z-index: 100;
          background: rgba(255,255,255,0.5); 
        }
        .nobg .jinDU{
            display: none!important;
        } 
         
        .isActive .jinDU{
          display:block!important;
        }
         
        .o-slider--preview {
          position: absolute;
          top: -70px;
          right: auto;
          bottom: auto;
          left: -65px;
          opacity: 0;
          width: 140px;
          height: 60px;
          background-size: cover;
          background-position: center center;
          transition: all 250ms;
          z-index: -1;
          border: 3px solid #000;
          transform: scale(0.2, 0.2);
          transform-origin: center bottom;
          display: none;
        }
         
        .o-slider--preview::before {
          content: "";
          position: absolute;
          top: auto;
          right: auto;
          bottom: -13px;
          left: 50%;
          margin: 0 0 0 -5px;
          height: 0;
          width: 0;
          border-left: 10px solid transparent;
          border-right: 10px solid transparent;
          border-top: 10px solid #000;
        }
        
         
        .o-slider--preview.isActive,
        .o-slider-pagination li:hover .o-slider--preview {
          opacity: 1;
          position: absolute;
          top: -76px;
          right: auto;
          bottom: auto;
          left: -65px;
          transform: scale(1, 1);
        }
        
        @media screen and (min-width: 768px) {
         
          .o-slider--preview {
            display: block;
          }
        }
         
        .o-slider-arrows {
          margin: 0;
          list-style: none;
          display: block;
        }
         
        .o-slider-next,
        .o-slider-prev { 
            border-radius: 50%;
            background: rgba(255,255,255,0);
            position: absolute;
            left: 20px;
            top: 45%;
            margin-top: -35px;
            width: 50px;
            height: 50px;
            z-index: 999;
            opacity: 1;
        }
        
        
        .o-slider-next i,
        .o-slider-prev i {
          position: absolute;
          top: 50%;
          left: 0;
          margin: -12px 0 0;
          text-align: center;
          width: 100%;
          font-size: 1.8rem;
          color: #fff;
        }
        
         
        .o-slider-next {
          left: auto;
          right: 20px;
        }
         
        .isDisabled {
          opacity: 0.1;
          cursor: auto;
        }
        @media screen and (max-width: 1920px) {
          .o-sliderContainer {
            height: 100vh;    
          }
        }
        
        @media screen and (max-width: 1800px) {
          .o-sliderContainer {
            height: 80vh;    
          }
        }
        
        
        @media screen and (max-width: 1280px) {
         
          .a-container {
            width: 970px;
          }
        }
        @media screen and (max-width: 1024px) {
          
          .o-slider-arrows {
            display: none;
          }
        
         
          .o-sliderContainer {
            height: 450px;
            width: 100%;
            margin: 0 0 50px 0;
          }
         
          .o-slider--item {
            height: 450px;
          }
        }
        @media screen and (max-width: 768px) {
         
          .a-container {
            width: 90%;
            margin: 20px auto;
          }
        
         
          .a-1_2 {
            width: 100%;
            display: block;
            margin: 0;
          }
        
         
          .o-slider-arrows {
            display: none;
          }
         
          .o-sliderContainer {
            height: 350px;
          }
        
         
          .o-slider--item {
            height: 350px;
          }
        
         
          .o-slider-panel img {
            left: -15%;
            width: 130%;
          }
        }
        @media screen and (max-width: 480px) {
         
          .o-slider--item {
            height: 270px;
          }
         
          .o-slider--item img {
            left: -20%;
            width: 140%;
          }
        
         
          .o-sliderContainer {
            height: 270px;
          }
        }



        服務咨詢
        1對1咨詢,專業(yè)客服為您解疑答惑
        聯(lián)系銷售
        15899750475
        在線咨詢
        聯(lián)系在線客服,為您解答所有的疑問