java script 메모

[jquery] 슬라이드 고인물

그나쓰 2023. 3. 23. 16:17

회사에 웹디자이너분이 담주 토욜에

웹디자인기능사 실기를 보신다고 하는데,

슬라이드가 너무 어렵고 이해가 안가신다고 해서

중간중간 작업 끝내고 짬나는 시간에 간단하게 예시를 만들어 드렸다

근데, 나 생각보다 정성스러운 느낌 ㅎㅋ

 

그래서 블로그에 남겨두려고 한다.

 

요건 css

<style>
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      ol,
      ul {
        list-style: none;
      }
      .wrap > div {
        height: 300px;
      }
      .wrap {
        display: flex;
      }
      .left,
      .right {
        border: 3px solid black;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .left {
        background: chartreuse;
        width: 100px;
      }
      .right {
        background: cornflowerblue;
        width: 150px;
      }

      .center {
        width: calc(100% - 100px - 150px);
      }
      .center .slide {
        width: 100%;
        height: 100%;
        overflow: hidden;
        position: relative;
      }
      .center ul {
        width: 300%;
        display: flex;
        height: 100%;
        transition: margin-left 0.3s;
      }
      .center li {
        width: 33.333%;
        height: 100%;
      }
      .center li a {
        display: block;
        width: 100%;
        height: 100%;
        position: relative;
        color: #fff;
      }
      .center li img {
        width: 100%;
      }
      .center li span {
        position: absolute;
        font-size: 30px;
        font-weight: bold;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }

      .btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 30px;
        height: 30px;
      }
      .btn_prev {
        left: 10px;
      }
      .btn_next {
        right: 10px;
      }
 </style>

 

요건 html

<div class="wrap">
      <div class="left">left</div>
      <!--왼쪽 박스-->

      <div class="center">
        <div class="slide">
          <ul>
            <li style="background: skyblue;">
              <a href="#">
                <img src="https://picsum.photos/600/300" alt="" />
                <span>1</span>
              </a>
            </li>
            <li style="background: coral;">
              <a href="#">
                <img src="https://picsum.photos/610/300" alt="" />
                <span>2</span>
              </a>
            </li>
            <li style="background: pink;">
              <a href="#">
                <img src="https://picsum.photos/620/300" alt="" />
                <span>3</span>
              </a>
            </li>
          </ul>
          <!--슬라이드-->

          <button type="button" class="btn_prev btn"><</button>
          <button type="button" class="btn_next btn">></button>
          <!--버튼-->
        </div>
      </div>
      <!--가운데 슬라이드 박스-->

      <div class="right">right</div>
      <!--오른쪽 박스-->
  </div>

 

제이쿼리 cdn 추가한 뒤 스크립트 삽입

<script>
      //jquery start
      var num = 0;
      var width = 100; //100%
      var margin;

      // prev 버튼
      $(".btn_prev").click(function () {
        num--; // --은 1씩 감소
        if (num < 0) {
          num = 2;
        }
        margin = num * width;
        $(".slide ul").css("margin-left", `-${margin}%`);
      });

      //next 버튼
      $(".btn_next").click(function () {
        num++; // ++은 1씩 증가
        if (num == 3) {
          num = 0;
        }
        margin = num * width;
        $(".slide ul").css("margin-left", `-${margin}%`);
      });
  </script>

 

혼자 포트폴리오 준비할 때 머리 지끈지끈 끙끙 앓아본 적이 있어서

내 설명으로 디자이너분이 슬라이드는 개껌처럼 쉽게 만들수있었으면 좋겠당

설명해주러가야지~.~ 총총

 

한번에 빡 합격하셔서 나한테 빠삐코 사주셨으면 좋겠당

'java script 메모' 카테고리의 다른 글

Odometer.js 라이브러리  (0) 2023.07.24
[javascript] 특정 세션에서 시작되는 setInterval 함수  (0) 2023.05.04
vTicker 플러그인  (0) 2023.02.12
[javascript] while 반복문  (0) 2023.01.15
(jquery) :lt(); , :gt();  (0) 2023.01.07