티스토리 뷰
나날이 격무에 시달리고있는 또름입니다......살려주세요
너무 포스트를 안올려서 오늘은 간단하게 pinch zoom 구현한 것을 포스팅하겠습니다
//pinch 진행 상태
let scaling = false;
//pinch 초기 거리
let setDist = 0;
$("#img").on("touchstart", function(event){
if(event.originalEvent.touches.length === 2){
scaling = true;
}
})
터치스타트 이용해서 2개의 터치포인터가 이벤트에 잡히면 scaling 변수를 true로...
$("#img").on("touchmove", function(event){
if(scaling){
var dist = Math.hypot(
event.originalEvent.touches[0].pageX - event.originalEvent.touches[1].pageX,
event.originalEvent.touches[1].pageY - event.originalEvent.touches[1].pageY
);
dist = Math.floor(dist/20);
if(setDist == 0) setDist = dist;
if(setDist < dist){
$(this).css("width", 1.1*parseFloat(imgWidth));
$(this).css("height", 1.1*parseFloat(imgHeight));
setDist = dist;
} else if(setDist > dist){
$(this).css("width", 0.9*parseFloat(imgWidth));
$(this).css("height", 0.9*parseFloat(imgHeight));
setDist = dist;
}
imgWidth = $("#img")[0].clientWidth;
imgHeight = $("#img")[0].clientHeight;
}
})
touchmove 이벤트를 이용해서, 양 터치간의 간극을 확인. 멀어지면 확대, 가까워지면 축소.
확대 및 축소에 따라 이미지 크기를 css로 조절!
$("#img").on("touchend", function(event){
scaling = false;
setDist = 0;
})
touch가 끝난 시점에 scaling 변수를 false로, 초기 pinch 이벤트 거리를 0 으로 초기화 (안해주면 중구난방 날뛰는 이미지를 보게 됩니다 )
테스트할때 이미지 위에서 pinch 해보시면 뚝뚝 끊기는 감이 있지만 잘 실행 될겁니다 ( 일부러 조절했습니다. )
이게 싫으신 분들은 dist 변수에 Math.floor(dist/20) 부분을 없애거나 숫자를 늘리거나 줄여서 조절하면 됩니다.
없애면 굉장히 민감히 반응을 하니 조절하는것을 추천드립니다.
이상~끝
'개발 이야기' 카테고리의 다른 글
| Jquery 자주 쓰는 기본! input, radio, select, checkbox 제어하기!!! (0) | 2025.02.19 |
|---|---|
| [웹개발] 간단한 지도 Javascript 라이브러리 leafletjs (0) | 2023.05.15 |
| jQuery Input 값 숫자만 허용하기 & 자동으로 전화번호 형식으로 변환 (정규식) (6) | 2023.02.23 |
| jQuery & html2canvas 웹에서 원하는 부분의 이미지를 잘라 저장하자! -2- (1) | 2023.02.21 |
| jQuery & html2canvas 웹에서 원하는 부분의 이미지를 잘라 저장하자! -1- (1) | 2023.02.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BBLC
- It
- 번호판끝자리
- 무한스크롤
- 호카본디9후기
- 경북캠핑
- 공공기관자동차5부제
- 피로회복
- 공공기관출입제한
- 웹에서 이미지 자르기
- 경영권이전
- 건강정보
- html2canvas
- 공부
- 이미지좌표가져오기
- 웹개발
- 경북노지캠핑
- 부산 맛집
- 인피니티스크롤
- 와이드운동화
- JavaScript
- Draggable
- 아키에이지크로니클
- AJAX
- jQuery
- 삼성페이장애
- 웹에서화면캡쳐
- 초보웹개발자
- 초보웹개발
- 경북노지
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
