Skip to content

CHICPRO

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

[jQuery] 위에서 순차적으로 내려오는 이미지

2013-10-06 by 편리

sequential-image-drop

위 이미지와 같이 위에서 순차적으로 내려오는 이미지를 구현하기 위한 코드이다. 개발 중인 쇼핑몰 솔루션에 적용예정인데 이런 기능을 하는 jQuery 플러그인 등이 있지만 간단하게 jQuery의 each(), animate(), delay() 를 사용하면 구현할 수 있다. 약간의 css 까지 더해지면 더할나위 없을지도 모른다. 아래는 간단한 문서구조이다.

<ul>
    <li class="first">
        <div>이미지</div>
        <div>이미지</div>
        <div>이미지</div>
    </li>
    <li>
        <div>이미지</div>
        <div>이미지</div>
        <div>이미지</div>
    </li>
</ul>

그리고 아래는 css 코드이다. 아래 코드는 개념적인 코드이므로 실제 사용엔 무리가 있다.

ul { position: relative; width: 700px; height: 300px; }
li { position: absolute; top: 0; left: 0; display: none; }
li.first { display: block; }
div { float: left; position: relative; top: -300px; margin-left: 20px; }

이제 애니메이션을 실행하는 jQuery 코드를 작성해 보자.

<script>
$(function() {
    var $ct = $("li");
    var count = $ct.size();
    var c_idx = o_idx = 0;
    var height = $("ul").height();
    var a_delay = 300;
    var time = 6000;
    var a_time = 800;
    var interval = null;

    interval = setInterval(image_drop, time);
});

function image_drop()
{
    var delay = 0;
    $ct.eq(o_idx).css("display", "none");
    $ct.eq(o_idx).find("div").css("top", "-"+height+"px");

    c_idx = (o_idx + 1) % count;

    $ct.eq(c_idx).css("display", "block");
    $ct.eq(c_idx).find("div").each(function() {
        $(this).delay(delay).animate(
            { top: "+="+height+"px" }, a_time
        );
        delay += a_delay;
    });

    o_idx = c_idx;
}
<script>

위의 코드가 실행되면 6초마다 상품의 리스트가 바뀌고 리스트 각각의 상품은 0.3초의 차이를 두고 위에서 내려오기 시작한다.

Post navigation

Previous Post:

체력이 부족해

Next Post:

[jQuery] 위로 롤링되는 이미지

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