Computer >> 컴퓨터 >  >> 프로그램 작성 >> CSS

jQuery를 사용하여 컨테이너 div에서 이미지를 드래그/패닝하는 방법은 무엇입니까?

<시간/>

mousedown, mouseup 및 mousemove와 같은 이벤트의 도움으로 이미지를 번역하여 드래그 효과를 만들 수 있습니다.

다음 예는 jQuery를 사용하여 이미지를 이동하는 방법을 보여줍니다.

예시

<!DOCTYPE html>
<html>
<head>
<style>
#parent{
   position: absolute;
   margin: 20px;
   width: 200px;
   height: 200px;
   border-radius: 25px;
   background-color: khaki;
}
#mover {
   position: relative;
   margin: 10px;
}
</style>
</head>
<body>
<div id=parent>
<img id="mover" src="https://images.unsplash.com/photo-1613333238609-
ef9218f3ddbd?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=100&ixlib=rb1.2.1&q=80&w=100" />
</div>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
let ele = {startPositionX:0,startPositionY:0};
let disp = {x:0,y:0};
$('#parent').on("mousedown",function(e){
   let container = $(this);
   ele.startPositionX=e.pageX-disp.x;
   ele.startPositionY=e.pageY-disp.y;
   $(document).on("mousemove",function(e){
      disp.x=e.pageX-ele.startPositionX;
      disp.y=e.pageY-ele.startPositionY;
      $('#mover').css('transform','scale('+1.0+') translate('+disp.x+'px, '+disp.y+'px)');
   });
});
$(document).on("mouseup",function(){
   $(this).off("mousemove");
});
</script>
</body>
</html>

출력

이것은 다음과 같은 결과를 생성합니다 -

jQuery를 사용하여 컨테이너 div에서 이미지를 드래그/패닝하는 방법은 무엇입니까?

드래그

jQuery를 사용하여 컨테이너 div에서 이미지를 드래그/패닝하는 방법은 무엇입니까?