resizable를 응용한 UI 기능 따라하기 (이미지 겹쳐서 좌/우 이동) > jquery

본문 바로가기
사이트 내 전체검색

jquery

resizable를 응용한 UI 기능 따라하기 (이미지 겹쳐서 좌/우 이동)

페이지 정보

작성자 서방님 댓글 0건 조회 78회 작성일 21-01-21 15:57

본문

깨톡 에서 기사 같은거 보게 되면 두 사진을 비교할때 이전에는 위아래로 위치 시켰었잖아요??


하지만 요즘에는 그렇지 않습니다. 두 사진을 한 곳에 겹쳐 놓고 좌우로 왔다 갔다 하면서 사진을 비교할 수 있게 해놨죠.


지금 제가 하는 기술은 누가 만들어놓은 API 아닙니다. 그래서 터치 방식은 아직 안됩니다. ㅠㅠ 웹에서만 가능한 기술이니 참고하시고~


터치 방식도 잘만 하면 될 거 같기도 하니 나중에 올려보겠습니다.


API 가 아니다 보니 제가 일일히 설명 좀 하겠습니다.


우선 jquery.ui 스크립트를 가져와야 합니다. css 도 마찬가지겠죠.


html의 head 부분에 넣어 주겠습니다.


1
2
3
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
cs


저 3개를 포함시켜주시고 ~


코드 작성에 앞서 Jquery.UI 가 있는 홈페이지를 한번 가서 쭉 둘러보고 오시는게 좋습니다.


http://api.jqueryui.com/


이제 코드작성을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<html>
<head>
 
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
 
<style>
.node_LR_width_x {width:500px; height:400px; position:relative;}
.node_LR_width_x img{width:500px ; height:400px}
.node_LR_width_x #LR_width_x_1 {
    width:250px; 
    height:400px;
     overflow:hidden; 
    position:absolute;
    border-right:3px solid black;
}
                    
</style>
 
<script>
$(function(){
// 여기가 실질적인 기술
    $("#LR_width_x_1").resizable({
        handles : 'e,w',
        maxWidth: 500,
        minWidth: 0,
        maxHeight: 400,
        minHeight: 400,
    })
})
</script>
 
<body>
 
<div style="padding-top:100px" class="node_LR_width_x"> 
 
    <div id="LR_width_x_1">
        <img src="../usi/bird2.jpg"/>  <!-- 이미지님 구독자들이 알아서 처리하시고 -->
    </div>
 
        <img src="../usi/bike.jpg" />  <!-- 이미지님 구독자들이 알아서 처리하시고 -->
 
</div>
 
</body>
</html>
cs


우리가 사용할 Jquery 기술은 resizable 입니다.


textarea 태그 다들 아시죠?? 그걸 이미지나 div 태그에도 붙일 수 있는겁니다.


css 중에서는 resize 속성이 있겠네요. 


상세 설명 들어갑니다.


첫번째 이미지 bird2 에는 position : absolute 가 주어져 있습니다. 그럼 이미지가 절대적인 위치로 가겠죠??


그리고 그 다음 이미지에는 아무것도 없습니다. 왜냐하면 ~ 두번째 것 마저 절대적인 위치를 줘버리면 하단이 슉 하고 올라와서 이미지가 


하단을 덮쳐버리는 괴기한 현상이 일어납니다. 물론 첫번째 div 인 class="node_LR_width_x" 에 relative 를 줘서 막아봤지만 그렇게 


하면 이미지 두개가 엇나가서 따로 조정해야하는 불편함이 있어서 어차피 하나는 절대적 위치에 있으니 하나만 그 위로 올리면 된다고 


생각하시면 이해가 빠르실겁니다.


다음 이미지 세팅을 했으니 숨겨지는 걸 해야겠죠. 그래서 첫번째 이미지에 div를 감싼겁니다. 


그 div 에 따로 width 와 height 를 주고 overflow: hidden 을 하면 !!! 현재 div 의 width 는 250px 이미지는 500px 이니까 250px가  


hidden 즉 , 숨겨지겠네요 그 상태가 현재 이런상태입니다.


qqwe.PNG?type=w2 


사실상 이미지는 겹쳐져 있는 것 입니다.


bird 이미지는 분명 500px 이지만 id="LR_width_x_1" 를 가진 div라는 커튼으로 가려놨기 때문에 반밖에 보이지 않게 되는거죠.


그리고 거기에 border-right 를 주면 완전히 갈라선 것처럼 보입니다. 이제 이 div 에 기술을 주겠습니다.


$(function(){

$("#LR_width_x_1").resizable(function(){


});

});


위에가 기본틀 입니다. 기본은 vertical 상, 하 horizontal 좌, 우  전부 조정 가능하게 됩니다.


하지만 우린 여기에 옵션을 줍니다. 


handles : 'e,w'  // 이건 제 생각엔 east west 동, 서 를 가리키는 것 같습니다. 즉 !! 좌,우만 되게 해라 이겁니다.

                      상하는 n , s 일까요?? 해보지는 않았습니다. ㅋㅋㅋ

maxWidth    // 최대 넓이 

minWidth    // 최소 넓이

maxHeight   // 최대높이

minHeight    // 최소 높이


jquery 홈페이지 가시면 옵션이 더 많으니까 찾아 보세용 .


이렇게 하면 이제 완성입니다.


예시를 보시면


왼쪽으로 ~

left.PNG?type=w2


오른쪽으로 ~

righr.PNG?type=w2 

근데 이게 커서유효성이 너무 작아서 좀 크게 할 방법이 없을까 합니다. 이게 원래 기술은 아니겠지만 한번 따라해봤습니다.


댓글목록

등록된 댓글이 없습니다.

Total 193건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
13
어제
58
최대
1,347
전체
153,777
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.