Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

[jQuery] 간단한 이미지 슬라이더

2013-10-06 by 편리

뭐 대단한 것은 아니다. 여러 장의 이미지를 이전, 다음 버튼을 클랙할 때마다 좌, 우로 슬라이딩 되면서 보여주는 게 전부이다. 이런 간단한 것을 간만에 했더니 좀 시간이 걸렸는데.. 자주 쓰던 것들도 한동안 안쓰니 머리 속에서 시원스레 지워지나 보다. ㅋ

먼저 jQuery 코드이다.

<script>
$(function() {
    var time = 500;
    var idx = idx2 = 0;
    var slide_width = $("#slider").width();
    var slide_count = $("#slider li").size();
    $("#slider li:first").css("display", "block");
    if(slide_count > 1)
        $(".btn").css("display", "inline");

    $("#prev_btn").click(function() {
        if(slide_count > 1) {
            idx2 = (idx - 1) % slide_count;
            if(idx2 < 0)
                idx2 = slide_count - 1;
            $("#slider li:hidden").css("left", "-"+slide_width+"px");
            $("#slider li:eq("+idx+")").animate({ left: "+="+slide_width+"px" }, time, function() {
                $(this).css("display", "none").css("left", "-"+slide_width+"px");
            });
            $("#slider li:eq("+idx2+")").css("display", "block").animate({ left: "+="+slide_width+"px" }, time);
            idx = idx2;
        }
    });

    $("#next_btn").click(function() {
        if(slide_count > 1) {
            idx2 = (idx + 1) % slide_count;
            $("#slider li:hidden").css("left", slide_width+"px");
            $("#slider li:eq("+idx+")").animate({ left: "-="+slide_width+"px" }, time, function() {
                $(this).css("display", "none").css("left", slide_width+"px");
            });
            $("#slider li:eq("+idx2+")").css("display", "block").animate({ left: "-="+slide_width+"px" }, time);
            idx = idx2;
        }
    });
});
</script>

다음은 HTML 코드이다.

<button type="button" id="prev_btn" class="btn">이전</button>
<button type="button" id="next_btn" class="btn">다음</button>
<ul id="slider">
    <li><img src="slider/img01.jpg"></li>
    <li><img src="slider/img02.jpg"></li>
    <li><img src="slider/img03.jpg"></li>
</ul>

그리고 마지막으로 CSS 코드이다.

#prev_btn {position:absolute;top:0;left:0}
#next_btn {position:absolute;top:0;right:0}
.btn {width:2em;height:280px;border:0;background:#f5f6fa;display:none;}

#slider {position:relative;margin:0 auto;padding:0;list-style:none;width:280px;height:280px;overflow-x:hidden}
#slider li {display:none;position:absolute;left:0;top:0}
#slider img {width:280px;height:280px}

 

이렇게 만들어 놓고.. 문득 든 생각이 슬라이딩 방향이 맞는 건가 하는.. 쓸데없을 수도 있는 생각이 들기 시작했다. 맞는 것 같기도 하면서 사람들마다 생각하는 게 다를 수도 있기 때문에.. 일단 방향을 바꿔달라고 하면 바꾸면 되니까.. 방향 바꾸는 거야 앉아서 밥먹기다. ㅋ

Post navigation

Previous Post:

HP Officejet 4500 G510 소프트웨어 드라이버 다운로드

Next Post:

워드프레스에 키보드 단축키 적용하기

9 Commments

  1. 문선균 says:
    2015-08-25 at 22:29

    편리님 감사합니다. 슬라이드를 플러그인 사용하지 않고 직접 만들어서 사용하고 싶었는데요..
    초보인 저에게는 넘 어려웠습니다. 그러다 찾다 찾다 여기까지 들어오게 되었네요..
    편리님 코드로 사용해 보니 잘됩니다.. 정말원했던 거였어요.. 무한 슬라이드..
    코드를 이해하려고 했지만… 어렵네요.. idx idx2를 선언해서 한개는 보여지게 한개는 숨기게 하는거같은데 코드를 이해가 안되네요.. 초보는 힘들군요.. 암무튼.. 감사합니다~

    Reply
    1. 편리 says:
      2015-08-26 at 12:19

      댓글 남겨주셔서 감사합니다.
      저두 처음엔 이렇게 직접 코드를 작성하곤 했는데요..
      요즘은 귀찮음에 그냥 플러그인 사용하는 경우가 많아지고 있습니다. ^^;

      Reply
  2. 현우 says:
    2017-03-19 at 19:08

    api를 이용해서 받아온 이미지랑 글자를 div 넘기기를 해서 사용했는데 넘길때 이전의 페이지가 같이 나오는데 이건 어떻게 바꿔야하나요??혹시 자문을 구할 수 있을까요???

    Reply
    1. 편리 says:
      2017-03-20 at 13:29

      댓글의 내용만 보고 답변을 드릴 수 있는 문제는 아닌 것 같습니다.

      Reply
  3. 경숙 says:
    2017-05-24 at 00:19

    선생님~ 너무 감사해요~
    해외 구글링으로 짜집기 해서 사용하던 소스가 버그가 나서 다시 망망대해를 뒤지던 중에
    (딱 원하는 UI의 플러그인이 전혀 없더라구요. ㅠㅠ)
    선생님 블로그에서 팁을 얻고 가요~!!! 잘 고쳤습니다!!! 너무 고맙습니다!!! 사랑해요!!!

    Reply
    1. 편리 says:
      2017-05-24 at 11:58

      부족한 제 포스트가 도움이 되었다니 감사할 일입니다. ^^

      Reply
  4. 정해인 says:
    2018-04-28 at 10:39

    안녕하세요.
    유용한 정보 제공해 주셔서 감사합니다.
    아미나 빌더를 이용하여 개발의뢰 상담을 드리고 싶은데 가능하신가요?

    Reply
  5. 편리 says:
    2018-04-28 at 12:13

    안녕하세요.
    개발 의뢰하시려는 내용을 아래 Contact 페이지에 남겨주시면 확인 후 답변드리겠습니다.
    https://chicpro.dev/contact

    Reply
  6. 감사합니다. says:
    2018-08-08 at 14:58

    배워갑니다 감사합니다.

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes