본문 바로가기
  • Welcome to Smart-i
  • I can do it!
  • Those who come, be rich.
코딩공부

전체화면 CSS 기반 슬라이더 만드는 방법

by ~~~~~하이글로시~~~~~ 2020. 11. 14.

CSS로 전체화면 슬라이드 예제 다운로드

전체화면 CSS 기반 슬라이더 만드는 방법 및 다운로드

전체화면을 이미지 또는 콘텐츠 슬라이더를 만드는 방법에 jQuery 플러그인이나 Javascript를 사용하지 않고 CSS로 만 슬라이더 만들기를 해보자. 

 

예제보기

다운로드

css-based-fullscreen-slider01.zip
0.09MB

div에 'css-based-slider'으로 클래스 이름을 준다.

<div  class="css-slider-wrapper"></div>

위 첫번째 div의 경우 전체 슬라이드이므로 절대 위치를 설정한다.

.css-slider-wrapper  {
  display: block;
  background: #FFF;
  overflow: hidden;
  position:absolute; 
  left:0; 
  right:0; 
  top:0; 
  bottom:0;
}

이제 4개의 섹션 슬라이드를 아래와 같이 만든다.

<div class="css-slider-wrapper">
    <div class="slider slide1">
        <div>
            <h2>Css Based slider</h2>
        </div>
    </div>
    <div class="slider slide2">
        <div>
            <h2>CSS Slider without use of any javascript or jQuery</h2>
        </div>
    </div>
    <div class="slider slide3">
        <div>
            <h2>Full screen animation slider</h2>
        </div>
    </div>
    <div class="slider slide4">
        <div>
            <h2>css3 slider</h2>
        </div>
    </div>
</div>
.slider {
    width: 100%;
    height: 100%;
    background: red;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 1;
    z-index: 0;
    
    display: flex;
    display: -webkit-flex;
    display: -ms-flexbox;
    flex-direction: row;
    flex-wrap: wrap;
    
    -webkit-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
    justify-content: center;
    align-content: center;
    
    -webkit-transition: -webkit-transform 1600ms;
    transition: -webkit-transform 1600ms, transform 1600ms;
    -webkit-transform: scale(1);
    transform: scale(1);
}
/* each slide background color */ 
.slide1 {
    background: #00bcd7;
    left: 0;
}
.slide2 {
    background: #009788;
    left: 100%
}
.slide3 {
    background: #ff5608;
    left: 200%
}
.slide4 {
    background: #607d8d;
    left: 300%;
}

슬라이더에 페이지 다음 및 이전과 같은 컨트롤을 만든다. 제어를 위해 for 속성 값을 라디오 버튼에 주어 제어를 할 수 있다.

<div class="css-slider-wrapper">
    
    <input type="radio" name="slider" class="slide-radio1" checked id="slider_1">
    <input type="radio" name="slider" class="slide-radio2" id="slider_2">
    <input type="radio" name="slider" class="slide-radio3" id="slider_3">
    <input type="radio" name="slider" class="slide-radio4" id="slider_4">
<div  class="slider-pagination">
      <label for="slider_1"  class="page1"></label>
      <label for="slider_2"  class="page2"></label>
      <label for="slider_3"  class="page3"></label>
      <label for="slider_4"  class="page4"></label>
</div>
<div class="next control">
    <label for="slider_1" class="numb1"><i class="fa fa-arrow-circle-right"></i></label>
    <label for="slider_2" class="numb2"><i class="fa fa-arrow-circle-right"></i></label>
    <label for="slider_3" class="numb3"><i class="fa fa-arrow-circle-right"></i></label>
    <label for="slider_4" class="numb4"><i class="fa fa-arrow-circle-right"></i></label>
</div>
<div class="previous control">
    <label for="slider_1" class="numb1"><i class="fa fa-arrow-circle-left"></i></label>
    <label for="slider_2" class="numb2"><i class="fa fa-arrow-circle-left"></i></label>
    <label for="slider_3" class="numb3"><i class="fa fa-arrow-circle-left"></i></label>
    <label for="slider_4" class="numb4"><i class="fa fa-arrow-circle-left"></i></label>
</div>
/* slider-pagination */ 
.slider-pagination {
    position: absolute;
    bottom: 20px;
    width: 100%;
    left: 0;
    text-align: center;
    z-index: 1000;
}
.slider-pagination label {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    background: rgba(255,255,255,0.2);
    margin: 0 2px;
    border: solid 1px rgba(255,255,255,0.4);
    cursor: pointer;
}
 
/* Next and previous button*/
.control {
  position: absolute;
  top: 50%;
  width: 50px;
  height: 50px;
  margin-top: -25px;
  z-index: 55;
}
.control label {
  z-index: 0;
  display: none;
  text-align: center;
  line-height: 50px;
  font-size: 50px;
  color: #FFF;
  cursor: pointer;
  opacity: 0.2;
}
.control label:hover {
  opacity: 0.5;
}
.next {
  right: 1%;
}
.previous {
  left: 1%;
}

컨트롤 슬라이딩 효과 CSS

/* Slider control sliding effect */
.slide-radio1:checked ~ .slider {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
}
.slide-radio2:checked ~ .slider {
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
}
.slide-radio3:checked ~ .slider {
  -webkit-transform: translateX(-200%);
  transform: translateX(-200%);
}
.slide-radio4:checked ~ .slider {
  -webkit-transform: translateX(-300%);
  transform: translateX(-300%);
}
 
 
/* next and previous will be  active when slider moving*/
.slide-radio1:checked ~ .next .numb2, 
.slide-radio2:checked ~ .next .numb3, 
.slide-radio3:checked ~ .next .numb4, 
.slide-radio2:checked ~ .previous .numb1, 
.slide-radio3:checked ~ .previous .numb2, 
.slide-radio4:checked ~ .previous .numb3 {
  display: block;
  z-index: 1
}
 
/* css for active current pagination */
.slide-radio1:checked ~ .slider-pagination .page1, 
.slide-radio2:checked ~ .slider-pagination .page2, 
.slide-radio3:checked ~ .slider-pagination .page3, 
.slide-radio4:checked ~ .slider-pagination .page4 {
  background: rgba(255,255,255,1)
}

최종 HTML과 CSS

<div class="css-slider-wrapper">
    
    <input type="radio" name="slider" class="slide-radio1" checked id="slider_1">
    <input type="radio" name="slider" class="slide-radio2" id="slider_2">
    <input type="radio" name="slider" class="slide-radio3" id="slider_3">
    <input type="radio" name="slider" class="slide-radio4" id="slider_4">
    
    
    <div class="slider-pagination">
        
        <label for="slider_1" class="page1"></label> 
        <label for="slider_2" class="page2"></label>
        <label for="slider_3" class="page3"></label>
        <label for="slider_4" class="page4"></label>
    </div>
    
    <div class="next control">
        <label for="slider_1" class="numb1"><i class="fa fa-arrow-circle-right"></i></label>
        <label for="slider_2" class="numb2"><i class="fa fa-arrow-circle-right"></i></label>
        <label for="slider_3" class="numb3"><i class="fa fa-arrow-circle-right"></i></label>
        <label for="slider_4" class="numb4"><i class="fa fa-arrow-circle-right"></i></label>
    </div>
    <div class="previous control">
        <label for="slider_1" class="numb1"><i class="fa fa-arrow-circle-left"></i></label>
        <label for="slider_2" class="numb2"><i class="fa fa-arrow-circle-left"></i></label>
        <label for="slider_3" class="numb3"><i class="fa fa-arrow-circle-left"></i></label>
        <label for="slider_4" class="numb4"><i class="fa fa-arrow-circle-left"></i></label>
    </div>
    
    
    <div class="slider slide1">
        <div>
            <h2>Css Based slider</h2>
            <a href="#" class="button">Download</a> 
        </div>
    </div>
    <div class="slider slide2">
        <div>
            <h2>CSS Slider without use of any javascript or jQuery</h2>
            <a href="#" class="button">Download</a> 
        </div>
    </div>
    <div class="slider slide3">
        <div>
            <h2>Full screen animation slider</h2>
            <a href="#" class="button">Download</a>
        </div>
    </div>
    <div class="slider slide4">
        <div>
            <h2>css3 slider</h2>
            <a href="#" class="button">Download</a> 
        </div>
    </div>
</div>
/* Slider wrapper*/
  .css-slider-wrapper {
      display: block;
      background: #FFF;
      overflow: hidden;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
  }
  /* Slider */
  .slider {
      width: 100%;
      height: 100%;
      background: red;
      position: absolute;
      left: 0;
      top: 0;
      opacity: 1;
      z-index: 0;
      
      display: flex;
      display: -webkit-flex;
      display: -ms-flexbox;
      flex-direction: row;
      flex-wrap: wrap;
      -webkit-flex-align: center;
      -webkit-align-items: center;
      align-items: center;
      justify-content: center;
      align-content: center;
      
      -webkit-transition: -webkit-transform 1600ms;
      transition: -webkit-transform 1600ms, transform 1600ms;
      -webkit-transform: scale(1);
      transform: scale(1);
      }
  /* each slide background color */ 
  .slide1 {
      background: #00bcd7;
      left: 0;
  }
  .slide2 {
      background: #009788;
      left: 100%
  }
  .slide3 {
      background: #ff5608;
      left: 200%
  }
  .slide4 {
      background: #607d8d;
      left: 300%;
  }
  .slider > div {
    text-align: center;
  }
  /* Slider inner content */
  .slider h2 {
      color: #FFF;
      font-weight: 900;
      text-transform: uppercase;
      font-size: 45px;
      line-height: 120%;
      opacity: 0;
      -webkit-transform: translateX(500px);
      transform: translateX(500px);
  }
  .slider .button {
      color: #FFF;
      padding: 5px 50px;
      background: rgba(255,255,255,0.3);
      text-decoration: none;
      opacity: 0;
      font-size: 15px;
      line-height: 30px;
      display: inline-block;
      -webkit-transform: translateX(-500px);
      transform: translateX(-500px);
  }
  .slider h2, .slider .button {
      -webkit-transition: opacity 800ms, -webkit-transform 800ms;
      transition: transform 800ms, opacity 800ms;
      -webkit-transition-delay: 1s; /* Safari */
      transition-delay: 1s;
  }
  /* Next and previous button */ 
  .control {
      position: absolute;
      top: 50%;
      width: 50px;
      height: 50px;
      margin-top: -25px;
      z-index: 55;
  }
  .control label {
      z-index: 0;
      display: none;
      text-align: center;
      line-height: 50px;
      font-size: 50px;
      color: #FFF;
      cursor: pointer;
      opacity: 0.2;
  }
  .control label:hover {
     opacity: 0.5;
  }
  .next {
    right: 1%;
  }
  .previous {
    left: 1%;
  }
  
  /* Slider pagination */ 
  .slider-pagination {
      position: absolute;
      bottom: 20px;
      width: 100%;
      left: 0;
      text-align: center;
      z-index: 1000;
  }
  .slider-pagination label {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      display: inline-block;
      background: rgba(255,255,255,0.2);
      margin: 0 2px;
      border: solid 1px rgba(255,255,255,0.4);
      cursor: pointer;
      }
      
  /* Slider control active css */
  .slide-radio1:checked ~ .next .numb2, 
  .slide-radio2:checked ~ .next .numb3, 
  .slide-radio3:checked ~ .next .numb4, 
  .slide-radio2:checked ~ .previous .numb1, 
  .slide-radio3:checked ~ .previous .numb2, 
  .slide-radio4:checked ~ .previous .numb3 {
      display: block;
      z-index: 1
  }
  /* Slider pagination active css */
  .slide-radio1:checked ~ .slider-pagination .page1, 
  .slide-radio2:checked ~ .slider-pagination .page2, 
  .slide-radio3:checked ~ .slider-pagination .page3, 
  .slide-radio4:checked ~ .slider-pagination .page4 {
      background: rgba(255,255,255,1)
  }
  
  /* css for sliding  effect when you click on control button*/
  .slide-radio1:checked ~ .slider {
      -webkit-transform: translateX(0%);
      transform: translateX(0%);
  }
  .slide-radio2:checked ~ .slider {
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
  }
  .slide-radio3:checked ~ .slider {
      -webkit-transform: translateX(-200%);
      transform: translateX(-200%);
  }
  .slide-radio4:checked ~ .slider {
      -webkit-transform: translateX(-300%);
      transform: translateX(-300%);
  }
  
  .slide-radio1:checked ~ .slide1 h2, 
  .slide-radio2:checked ~ .slide2 h2, 
  .slide-radio3:checked ~ .slide3 h2, 
  .slide-radio4:checked ~ .slide4 h2, 
  .slide-radio1:checked ~ .slide1 .button, 
  .slide-radio2:checked ~ .slide2 .button, 
  .slide-radio3:checked ~ .slide3 .button, 
  .slide-radio4:checked ~ .slide4 .button {
      -webkit-transform: translateX(0);
      transform: translateX(0);
      opacity: 1
  }
  
@media only screen and (max-width: 767px) {
  .slider h2 {
      font-size: 20px;
  }
  .slider > div {
      padding: 0 2%
  }
  .control label {
      font-size: 35px;
  }
  .slider .button {
      padding: 0 30px;
  }
  }

 

 

[세상살이] - improve youtube 유튜브 기능 확장 프로그램 설치하기

 

improve youtube 유튜브 기능 확장 프로그램 설치하기

improve youtube 크롬 확장 프로그램 설치하기 YouTube를 더 편리하고 강력하게 만들어 주는 확장 프로그램 'improve youtube' 유튜브 화면을 가로, 세로로 원하는 방향으로 회전시킬수도 있고, 설정된 해상

smarti.tistory.com

[세상살이] - 영화 서복 죽지 않는 존재

 

영화 서복 죽지 않는 존재

서복 (徐福) 기원전 255년에 제나라에서 태어난 서복은 '사기'권6 진시황복기 및 권118 회남형산열전에 따르면, 기원전 221년에 6국을 복속시키고 천하를 통일한 진시황은 불로장생을 위한 영약을

smarti.tistory.com

[코딩공부] - CSS jQuery를 이용한 펼침 메뉴 예제 다운로드

 

CSS jQuery를 이용한 펼침 메뉴 예제 다운로드

CSS jQuery를 이용한 펼침 메뉴 예제보기 다운로드 menu를 div로 감싸고, 각 항목에는 링크 요소로서의 아이콘과 검색상자를 추가, 제목과 단락이 있는 div가 있다. Contact us eMail Twitter Facebook Help FAQ..

smarti.tistory.com

[디자인공부] - 포토샵으로 금박, 은박 문자 만들기

 

포토샵으로 금박, 은박 문자 만들기

Adobe Photoshop으로 금박, 은박 문자 만들기 포토샵에서 반짝이는 느낌의 금박, 은박 문자 만들기. 먼저 최종 마무리 레이어 창을 보자. 새 문서에 아무 이미지나 넣어서 필터의 왜곡 효과나 손가락

smarti.tistory.com

[코딩공부] - 아파치(Apache 2.4.46) 웹서버 설치하기, 윈도우10

 

아파치(Apache 2.4.46) 웹서버 설치하기, 윈도우10

윈도우10 64bit APM Apache 2.4 다운로드 및 설치 윈도우에 IIS를 이용하여 웹서버를 구성할 수도 있지만, 윈도우뿐 아니라 Linux 등 다양한 환경에서 쉽게 운영할 수 있는 APM (Apache+PHP+MySQL) Apache 웹서버..

smarti.tistory.com

 

관련글

 

댓글