자동슬라이드에 대한 질문입니다.

자동슬라이드에 대한 질문입니다.

QA

자동슬라이드에 대한 질문입니다.

본문

https://sir.kr/cmall/1642473188

나미웹 님의 콘텐트 메인에서 둘레아빠 님이 알려주신 비디오 태그에 더해서 
웹메이킹 님이 알려주신 소스를 통해 많이 배우고 있습니다.

 

여기서 나미웹 님의 콘텐츠를 보면 5개의 이미지가 슬라이드로 돌아가고 있는데요.
1~3번까지만 자동으로 슬라이드 되게 할 수 있는 방법이 있을까요?

4번과 5번이미지는 그냥 수동으로(드래그) 하려구요.

코드는 아래와 같습니다.


<?php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/index.php');
    return;
}
include_once(G5_THEME_PATH.'/head.php');
?>
<style type="text/css">
.video-container {
  position: relative;
  padding-bottom: 142%; /* 16:9 */
  height: 0;
  overflow: hidden;
    }
.video-container .video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
</style>
<script>
var video1 = document.getElementById('video1');
var video2 = document.getElementById('video2');
var video3 = document.getElementById('video3');
video1.addEventListener('ended', function() {
  video2.play();
});
video2.addEventListener('ended', function() {
  video3.pause();
});
function playVideo(videoId) {
  var previousVideo = document.querySelector('.video:not(#' + videoId + ')');
  if (previousVideo) {
    previousVideo.pause();
    previousVideo.currentTime = 0;
  }
  var video = document.getElementById(videoId);
  video.play();
}
</script>
<div class="main_page">
    <div class="main_banner default_banner">
        <div class="swiper-container mb_container">
            <div class="swiper-wrapper mb_wrapper">
                
                <div class="swiper-slide mb_slide mb_slide1">
                    <div class="banner_tit inner">
                        <h2> </h2>
                        <p class="desc"> </p>                        
                    </div>
                </div>
                <div class="swiper-slide mb_slide mb_slide2">
                    <div class="banner_tit inner">
                        <h2> </h2>
                        <p class="desc"> </p>
                    </div>
                </div>
                <div class="swiper-slide mb_slide20 video-container">
                        <video id="video1" class="video" width="320" height="700" autoplay muted>
                            <source src="/video1.mp4" type="video/mp4">
                            <source src="/video1.webm type="video/webm">
                            <source src="/video1.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                        </video>
                </div>
                <div class="swiper-slide mb_slide21 video-container">
                        <video id="video2" class="video" width="320" height="700" autoplay muted>
                            <source src="/video2.mp4" type="video/mp4">
                            <source src="/video2.webm type="video/webm">
                            <source src="/video2.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                        </video>
                </div>
                <div class="swiper-slide mb_slide23 video-container">
                        <video controls autoplay muted width="400" height="700">
                            <source src="/video3.mp4" type="video/mp4">
                            <source src="/video3.webm type="video/webm">
                            <source src="/video3.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                        </video>
                </div>
            </div>
            <div class="swiper-button-next main-slide-next"></div>
            <div class="swiper-button-prev main-slide-prev"></div>
            <div class="swiper-pagination main-slide-pagination"></div>
        </div>
    </div>
    <script>
        $(function(){
            var swiper = new Swiper('.default_banner .swiper-container', {
                slidesPerView: 1,
                spaceBetween: 0,
                loop: true,
                navigation: {
                    nextEl: '.swiper-button-next',
                    prevEl: '.swiper-button-prev',
                },
                pagination: {
                    el: '.swiper-pagination',
                    clickable: true,
                },
                 autoplay: {
                    delay: 3000,
                    disableOnInteraction: false,
                }, 
            });
             $('.main_banner .swiper-slide').on('mouseenter', function(e){
                console.log('stop autoplay');
                swiper.autoplay.stop();
            });
        $('.main_banner .swiper-slide').on('mouseleave', function(e){
                console.log('start autoplay');
                swiper.autoplay.start();
            }); 
        })
    
    
        $(function(){
            jQuery( '#background' ).YTPlayer();
        });
  
    </script>
    <div class="main_sec main_sec5 main-latest-list">
  <div class=" inner">
            <div class="latest_wr wow fadeInUp" data-wow-delay="0.4s">
                <div class="latest-list-box">
                    <div class="latest-list-tit">
                        <h2 class="board-tit">공지사항</h2>
                    </div>
                    <?php echo latest('theme/basic2', 'basic_list', 4, 40, 1);?>
                </div>
        </div>
        </div>
    </div>
    <div class="main_sec main_sec6">
      <div class="inner">
        <li class="btm-con-list list-long con-list">
          <div class="main-sub clearfix">
            <div class="long-list2"></div>
                </div>
            </li>
        </div>
    </div>
</div>

<?php
include_once(G5_THEME_PATH.'/tail.php');
?>

이 질문에 댓글 쓰기 :

답변 3

제가 정확히 이해를 한게 맞는지 잘 모르겠습니다.

질문에 의하면 1 ~3 까지는 자동으로 4 ~ 5까지는 수동으로 하신다는걸로 이해를 했는데요..

그게 맞다면 다음과 같이 해보시면 어떨까 합니다


<?php
define('_INDEX_', true);
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (G5_IS_MOBILE) {
    include_once(G5_THEME_MOBILE_PATH.'/index.php');
    return;
}
include_once(G5_THEME_PATH.'/head.php');
?>
<style type="text/css">
.video-container {
  position: relative;
  padding-bottom: 142%; /* 16:9 */
  height: 0;
  overflow: hidden;
}
.video-container .video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
</style>
<script>
var swiper = new Swiper('.swiper-container', {
  slidesPerView: 1,
  spaceBetween: 0,
  loop: true,
  autoplay: {
    delay: 3000,
    disableOnInteraction: false,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  pagination: {
    el: '.swiper-pagination',
    clickable: true,
  },
  on: {
    slideChange: function () {
      if (swiper.activeIndex >= 3) {
        swiper.autoplay.stop();
      } else {
        swiper.autoplay.start();
      }
    },
  },
});
</script>
<div class="main_page">
    <div class="main_banner default_banner">
        <div class="swiper-container">
            <div class="swiper-wrapper">
                <div class="swiper-slide mb_slide mb_slide1">
                    <div class="banner_tit inner">
                        <h2> </h2>
                        <p class="desc"> </p>                        
                    </div>
                </div>
                <div class="swiper-slide mb_slide mb_slide2">
                    <div class="banner_tit inner">
                        <h2> </h2>
                        <p class="desc"> </p>
                    </div>
                </div>
                <div class="swiper-slide mb_slide20 video-container">
                    <video class="video" width="320" height="700" autoplay muted>
                        <source src="/video1.mp4" type="video/mp4">
                        <source src="/video1.webm" type="video/webm">
                        <source src="/video1.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                    </video>
                </div>
                <div class="swiper-slide mb_slide21 video-container">
                    <video class="video" width="320" height="700">
                        <source src="/video2.mp4" type="video/mp4">
                        <source src="/video2.webm" type="video/webm">
                        <source src="/video2.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                    </video>
                </div>
                <div class="swiper-slide mb_slide22 video-container">
                    <video class="video" width="320" height="700">
                        <source src="/video3.mp4" type="video/mp4">
                        <source src="/video3.webm" type="video/webm">
                        <source src="/video3.ogg" type="video/ogg">
                        이 문장은 여러분의 브라우저가 video 태그를 지원하지 않을 때 화면에 표시됩니다!
                    </video>
                </div>
            </div>
            <div class="swiper-button-next main-slide-next"></div>
            <div class="swiper-button-prev main-slide-prev"></div>
            <div class="swiper-pagination main-slide-pagination"></div>
        </div>
    </div>
    <div class="main_sec main_sec5 main-latest-list">
        <div class="inner">
            <div class="latest_wr wow fadeInUp" data-wow-delay="0.4s">
                <div class="latest-list-box">
                    <div class="latest-list-tit">
                        <h2 class="board-tit">공지사항</h2>
                    </div>
                    <?php echo latest('theme/basic2', 'basic_list', 4, 40, 1);?>
                </div>
            </div>
        </div>
    </div>
    <div class="main_sec main_sec6">
        <div class="inner">
            <li class="btm-con-list list-long con-list">
                <div class="main-sub clearfix">
                    <div class="long-list2"></div>
                </div>
            </li>
        </div>
    </div>
</div>
<?php
include_once(G5_THEME_PATH.'/tail.php');
?>

이게 맞다고 할 수는 없겠지만, 참고 하셔서 원하시는 로직으로 구현을 하시면 될 것 같습니다.

https://lpla.tistory.com/118 를 참고하고 공부하셔서

on: {
    activeIndexChange: function () {
      alert(this.realIndex+'번째 slide입니다.');
    }
  }

를 참고하셔서 인덱스에 맞게 멈추고 돌리고를 해주시면 될거 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,674 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT