워드프레스 쇼핑몰, 웹사이트

사이트 이미지
쇼핑몰

남성의류 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
웹사이트

회원관리 사이트

회원관리 프러그인을 이용한 학회 홈페이지.

사이트 이미지
쇼핑몰

면도기 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
쇼핑몰

해외 쇼핑몰

해외 대상 쇼핑몰. 다양한 플러그인 사용됨.

사이트 이미지
쇼핑몰

강아지 용품 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

포트폴리오 보기

블로그 인기글

커스텀 디자인

여러 종류의 플러그인을 이용해 페이지와 콘텐츠를 커스텀 디자인

Brizy Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Elementor Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Advanced Custom Field Pro

사용자 정의 필드

커스텀 콘텐츠 작업에 필요한 플러그인

Pods

사용자 정의 콘텐츠 타입

기본 콘텐츠 타입외에 다양한 형태의 콘텐츠 생성.

블로그

이미지에 마우스를 올렸을 때 긴 이미지를 상단으로 이동시키는 효과를 CSS3의 transform 속성을 이용해 만들어보겠습니다. 일반적으로 이런 효과는 gif 애니메이션 기능을 이용해 만드는데 그러자면 이미지의 용량도 늘어나고 이미지 품질도 좋지 않습니다.


<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Made with Thimble</title>

  <link rel="stylesheet" href="style.css">

</head>

<body>


<div class="image-container">

  <img src="004.jpg">

</div>


</body>

</html>


head 태그에 style.css 파일을 추가하고 body에 이미지를 추가한 다음 .image-container로 감싸줍니다.


.image-container {

  width: 600px;

  height: 400px;

  overflow: hidden;

  border: 1px solid #ddd;

  border-radius: 7px;

  position: relative;

}


style.css에 위처럼 이미지의 폭과 높이를 지정해줍니다. 이미지는 상하로 긴 이미지를 사용하므로 박스로 제한하기 위해 height 속성을 사용했고 이 범위를 벗어나는 것을 보이지 않도록 overflow:hidden을 사용했습니다.


.image-container img {

  max-width: 100%;

  transition: transform 5s;

  -moz-transition: transform 5s;

  -ms-transition: transform 5s;

  -webkit-transition: transform 5s;

}


style.css에 위처럼 추가해줍니다. 이미지의 최대폭을 100%로 해주고 transition 속성을 이용해 5초동안 작동되도록 합니다.



위와 같은 모양이 됩니다.


.image-container:hover img {

  transform: translateY(-744px);

}


이미지 컨테이너에 마우스를 올렸을 때 Y축으로 이동되도록 설정합니다. 이동의 크기는 744px인데 이것의 의미는 이미지의 높이인 1144px에서 박스의 높이인 400px을 뺀 수치입니다. 그래야 이미지 하단의 끝에서 정지하게 됩니다. 주의 해야 할 것은 박스로 제한 했으므로 원래의 이미지 크기가 아닌 제한된 박스내에서의 이미지 크기를 대상으로 해야 합니다. 원래의 이미지 크기는 1177x2245px인데 박스의 폭을 600px로 줄였으므로 이에 따라 높이도 1144px로 줄어듭니다.


여기까지 하고 이미지에 마우스를 올리면 이미지가 상단으로 이동하는 것을 볼 수 있습니다.


여기에 추가적으로 이미지를 자동으로 상하로 이동해도록 해보겠습니다. 시간을 설정해 위로 이동한 다음 다시 아래로 이동하는 것을 반복하는 것입니다. 시간 설정은 간단하게 제이쿼리를 이용합니다.


<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Made with Thimble</title>

  <link rel="stylesheet" href="style.css">

</head>

<body>


<div class="image-container">

  <img src="004.jpg">

</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

  <script src="script-1.js"></script>

</body>

</html>


</body> 태그 바로 위에 제이쿼리 파일을 추가하고 코드를 입력할 script-1.js 파일도 추가해줍니다.


jQuery(document).ready(function($){


setInterval(function(){ 


  $('.image-container').toggleClass('slide');  


},6000);


});


script-1.js 파일에 위처럼 입력해줍니다. .image-container에 대해서 .slide라는 클래스 선택자를 추가 및 제거(toggle)해주는데 6000밀리초 동안 반복해줍니다. 이전에 5초동안 이미지가 애니메이션 되도록 설정했으므로 1초 지난다음 이동하도록 하기 위해 6초로 한 것입니다.


.image-container:hover img, .slide img {

  transform: translateY(-744px);

}


마우스를 올렸을 때 이미지를 이동하도록 한 이전의 코드에 .slide img를 추가해줍니다. .image-container에 slide가 추가되면 Y축으로 744 픽셀 이동하게 되고 6초 후에는 .slide 클래스가 제거되므로 원래의 위치로 돌아가게 됩니다.


지금까지의 기능을 응용하면 상하 이동이 아닌 좌우 이동도 만들 수 있습니다.


<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width, initial-scale=1">

  <title>Made with Thimble</title>

  <link rel="stylesheet" href="style.css">

</head>

<body>


<div class="image-container">

  <img src="004.jpg">

</div>

<div class="image-container2">

  <img src="panorama.jpg">

</div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>

  <script src="script-1.js"></script>

</body>

</html>


이미지를 추가하고 박스(.image-container2)를 만들어줍니다.


.image-container2 {

  width: 600px;

  height: 400px;

  overflow: hidden;

  border: 1px solid #ddd;

  border-radius: 7px;

  position: relative;

}

.image-container2 img {

  max-height: 100%;

  transition: transform 5s;

  -moz-transition: transform 5s;

  -ms-transition: transform 5s;

  -webkit-transition: transform 5s;

}

.image-container2:hover img, .slide2 img {

  transform: translateX(-996px);

}


스타일시트는 위와 같습니다. 콘테이너는 이전과 같으나 이미지에 대해서 max-height를 추가해줘야 이미지가 상하로 꽉 차게 됩니다. transform은 X축으로 이동하며 이동 거리는 이미지 폭 1596-600=966px입니다.


jQuery(document).ready(function($){


setInterval(function(){ 


  $('.image-container').toggleClass('slide');  

  $('.image-container2').toggleClass('slide2');  


},6000);


});


제이쿼리에도 추가했습니다.


https://thimbleprojects.org/martian36/252740/