웹 프론트엔드 JS 튜토리얼 컨테이너로 제한되고 종횡비를 유지하면서 JavaScript로 이미지 드래그 및 확대/축소를 구현하는 방법은 무엇입니까?

컨테이너로 제한되고 종횡비를 유지하면서 JavaScript로 이미지 드래그 및 확대/축소를 구현하는 방법은 무엇입니까?

Oct 18, 2023 am 11:28 AM
종횡비 그림 드래그 컨테이너 한도

JavaScript 如何实现图片的拖动缩放同时限制在容器内且保持纵横比?

JavaScript 컨테이너에 제한되고 종횡비를 유지하면서 이미지를 드래그하고 확대/축소하는 방법은 무엇입니까?

많은 웹 디자인에서는 컨테이너 내에서 이미지의 드래그 앤 줌 기능을 구현해야 할 수도 있습니다. 또한 이미지의 종횡비를 유지하려면 몇 가지 추가 처리가 필요합니다. 이 기사에서는 JavaScript를 사용하여 이 기능을 구현하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다.

먼저, 이미지와 컨테이너가 포함된 HTML 구조를 만듭니다. 예는 다음과 같습니다.

<div id="container">
  <img src="image.jpg" id="image">
</div>
로그인 후 복사

다음으로 CSS를 사용하여 컨테이너 스타일을 지정해야 합니다. 예는 다음과 같습니다.

#container {
  width: 500px;
  height: 400px;
  border: 1px solid #ccc;
  position: relative;
  overflow: hidden;
}

#image {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  cursor: move;
}
로그인 후 복사

CSS에서는 컨테이너의 크기와 테두리 스타일을 설정하고 위치를 상대 위치로 설정합니다. 반면에 이미지는 절대 위치 지정을 사용하고 크기를 100%로 설정하여 컨테이너를 채웁니다. object-fit: contain;은 이미지의 가로 세로 비율을 유지하는 데 사용됩니다. object-fit: contain;用于保持图片的纵横比例。

现在,我们可以开始编写JavaScript代码来实现拖动和缩放的功能。我们将使用鼠标事件来控制图片的位置和大小。示例如下:

var container = document.getElementById('container');
var image = document.getElementById('image');

var isDragging = false;
var startX, startY, startWidth, startHeight;

// 鼠标按下事件
image.addEventListener('mousedown', function(e) {
  isDragging = true;
  startX = e.clientX;
  startY = e.clientY;
  startWidth = image.offsetWidth;
  startHeight = image.offsetHeight;
});

// 鼠标移动事件
container.addEventListener('mousemove', function(e) {
  if (isDragging) {
    var offsetX = e.clientX - startX;
    var offsetY = e.clientY - startY;

    var newWidth = startWidth + offsetX;
    var newHeight = startHeight + offsetY;

    // 限制图片在容器内部移动和缩放
    if (newWidth >= container.offsetWidth && newWidth <= container.offsetWidth * 2) {
      image.style.width = newWidth + 'px';
    }
    if (newHeight >= container.offsetHeight && newHeight <= container.offsetHeight * 2) {
      image.style.height = newHeight + 'px';
    }
  }
});

// 鼠标松开事件
container.addEventListener('mouseup', function() {
  isDragging = false;
});
로그인 후 복사

在上面的代码中,我们使用mousedown事件来标识鼠标按下的瞬间,并记录下初始的位置和大小。接着,我们监听mousemove事件来实时更新图片的位置和大小。在移动过程中,我们计算鼠标的偏移量,并根据偏移量改变图片的大小。最后,我们使用mouseup

이제 드래그 및 확대/축소 기능을 구현하는 JavaScript 코드 작성을 시작할 수 있습니다. 마우스 이벤트를 사용하여 이미지의 위치와 크기를 제어하겠습니다. 예를 들면 다음과 같습니다.

rrreee

위 코드에서는 mousedown 이벤트를 사용하여 마우스가 눌려지는 순간을 식별하고 초기 위치와 크기를 기록합니다. 다음으로 mousemove 이벤트를 수신하여 이미지의 위치와 크기를 실시간으로 업데이트합니다. 이동하는 동안 마우스의 오프셋을 계산하고 오프셋에 따라 이미지의 크기를 변경합니다. 마지막으로 mouseup 이벤트를 사용하여 마우스를 놓는 순간을 식별하고 드래그 작업을 중지합니다.

이동 및 크기 조정 과정에서 새로운 너비와 높이가 컨테이너의 특정 범위 내에 있는지 확인하여 이미지의 크기를 제한한다는 점에 유의하세요. 이렇게 하면 이미지가 항상 컨테이너 내에 있고 가로 세로 비율이 유지됩니다.

요약하자면 위의 JavaScript 코드를 통해 컨테이너 내 이미지의 드래그 및 확대/축소 기능을 구현하고 이미지의 가로 세로 비율을 유지할 수 있습니다. 이는 많은 웹 디자인에서 매우 실용적입니다. 🎜🎜물론 위의 내용은 단순한 예일 뿐이므로 필요에 따라 조정하고 최적화할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 컨테이너로 제한되고 종횡비를 유지하면서 JavaScript로 이미지 드래그 및 확대/축소를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 11의 디스플레이 크기 조정 가이드 Windows 11의 디스플레이 크기 조정 가이드 Sep 19, 2023 pm 06:45 PM

Windows 11의 디스플레이 크기 조정과 관련하여 우리 모두는 서로 다른 선호도를 가지고 있습니다. 큰 아이콘을 좋아하는 사람도 있고, 작은 아이콘을 좋아하는 사람도 있습니다. 그러나 올바른 크기 조정이 중요하다는 점에는 모두가 동의합니다. 잘못된 글꼴 크기 조정이나 이미지의 과도한 크기 조정은 작업 시 생산성을 저하시킬 수 있으므로 시스템 기능을 최대한 활용하려면 이를 사용자 정의하는 방법을 알아야 합니다. Custom Zoom의 장점: 화면의 텍스트를 읽기 어려운 사람들에게 유용한 기능입니다. 한 번에 화면에서 더 많은 것을 볼 수 있도록 도와줍니다. 특정 모니터 및 응용 프로그램에만 적용되는 사용자 정의 확장 프로필을 생성할 수 있습니다. 저사양 하드웨어의 성능을 향상시키는 데 도움이 될 수 있습니다. 이를 통해 화면의 내용을 더 효과적으로 제어할 수 있습니다. 윈도우 11을 사용하는 방법

iPhone의 Safari 확대/축소 문제: 해결 방법은 다음과 같습니다. iPhone의 Safari 확대/축소 문제: 해결 방법은 다음과 같습니다. Apr 20, 2024 am 08:08 AM

Safari에서 확대/축소 수준을 제어할 수 없으면 작업을 완료하는 것이 까다로울 수 있습니다. 따라서 Safari가 축소된 것처럼 보이면 문제가 될 수 있습니다. Safari에서 이 사소한 확대/축소 문제를 해결할 수 있는 몇 가지 방법은 다음과 같습니다. 1. 커서 확대: Safari 메뉴 표시줄에서 "디스플레이" > "커서 확대"를 선택합니다. 이렇게 하면 화면에 커서가 더 잘 보이도록 되어 제어가 더 쉬워집니다. 2. 마우스 이동: 간단해 보이지만 때로는 화면의 다른 위치로 마우스를 이동하기만 해도 자동으로 원래 크기로 돌아갈 수 있습니다. 3. 키보드 단축키 사용 수정 1 – 확대/축소 수준 재설정 Safari 브라우저에서 직접 확대/축소 수준을 제어할 수 있습니다. 1단계 – Safari에 있을 때

페이지를 단어별로 나란히 확대/축소하는 방법 페이지를 단어별로 나란히 확대/축소하는 방법 Mar 19, 2024 pm 07:19 PM

워드 문서를 사용하여 파일을 편집하다 보면 페이지가 많은 경우가 있는데, 나란히 표시해 전체적인 효과를 확인하고 싶은 경우가 있는데, 조작 방법을 모르기 때문에 장시간 스크롤을 해야 하는 경우가 많습니다. 페이지별로 보려면. 혹시 비슷한 상황을 겪어보셨는지 모르겠습니다. 사실, 단어 확대/축소 페이지를 나란히 설정하는 방법만 배우면 이번에는 쉽게 해결할 수 있습니다. 아래에서 함께 살펴보고 배워봅시다. 먼저 Word 문서에서 새 페이지를 만들어 연 다음 쉽게 구분할 수 있도록 간단한 내용을 입력합니다. 2. 예를 들어 단어 확대 및 나란히 표시를 구현하려면 그림과 같이 메뉴 표시줄에서 [보기]를 찾은 다음 보기 도구 옵션에서 [여러 페이지]를 선택해야 합니다. 3. [여러 페이지]를 찾아 클릭합니다.

Word 문서 편집 팁: 두 페이지의 콘텐츠를 하나로 만들기 Word 문서 편집 팁: 두 페이지의 콘텐츠를 하나로 만들기 Mar 25, 2024 pm 06:06 PM

Microsoft Word 문서에서는 특히 종이를 절약해야 하거나 양면 문서를 인쇄해야 하는 경우 두 페이지의 내용을 한 페이지로 병합하는 상황이 자주 발생합니다. 이 목표를 달성하기 위한 몇 가지 일반적인 방법이 아래에 소개됩니다. 방법 1: 페이지 여백 조정 먼저 Word 문서를 열고 메뉴 표시줄에서 "페이지 레이아웃" 옵션을 찾으세요. 클릭하면 페이지 레이아웃 설정 메뉴가 나타납니다. 여기서 위쪽, 아래쪽, 왼쪽 및 오른쪽 여백을 포함하여 페이지 여백을 조정할 수 있습니다. 일반적으로 위쪽 및 아래쪽 여백을 작게 하면 내용이 한 페이지에 들어갈 수 있습니다. 맛볼 수 있다

엑셀 표 전체를 확대하거나 축소하는 방법 엑셀 표 전체를 확대하거나 축소하는 방법 Mar 20, 2024 pm 05:16 PM

컴퓨터 기술, 네트워크 기술, 소프트웨어 기술의 발전은 사무 자동화에 대한 큰 전망을 제공했습니다. 현재 사무실 작업 프로세스는 모두 전자적으로 수행될 수 있으므로 작업 시간이 크게 절약됩니다. Excel 테이블은 일반적으로 사용되는 소프트웨어 작업입니다. 때로는 종이 또는 조판 문제로 인해 Excel 테이블 전체를 확대하거나 축소해야 합니다. 우리의 요구를 충족할 수 있는 모든 작업 방법에 대해서는 다음 과정을 살펴보겠습니다. 1. 먼저 엑셀 소프트웨어를 열고 아래 그림과 같이 관련 정보를 입력합니다. 2. 그런 다음 아래 그림과 같이 오른쪽 하단에 있는 아이콘을 클릭하고 왼쪽 또는 오른쪽으로 이동하면 플러스 기호가 확대되고 마이너스 기호가 축소됩니다. 3. 두 번째 방법도 Ctrl + 마우스 휠을 사용하는 방법입니다.

Python을 사용하여 이미지 크기를 조정하고 회전하는 방법 Python을 사용하여 이미지 크기를 조정하고 회전하는 방법 Aug 17, 2023 pm 10:52 PM

Python을 사용하여 이미지 크기를 조정하고 회전하는 방법 소개: 오늘날 우리는 웹 디자인, 모바일 애플리케이션, 소셜 미디어 및 기타 시나리오를 풍부하게 하기 위해 이미지를 자주 사용합니다. 이미지 처리에서 크기 조정과 회전은 두 가지 일반적인 요구 사항입니다. 스크립팅 언어이자 강력한 이미지 처리 도구인 Python은 이러한 작업을 처리하기 위한 많은 라이브러리와 방법을 제공합니다. 이 기사에서는 Python을 사용하여 이미지 크기를 조정하고 회전하는 방법을 소개하고 코드 예제를 제공합니다. 1. 사진 확대/축소 사진 확대/축소는 이미지 크기를 조정하는 기본 작업 중 하나입니다.

JavaScript를 사용하여 이미지를 컨테이너로 제한하면서 이미지를 드래그하고 확대/축소하는 방법은 무엇입니까? JavaScript를 사용하여 이미지를 컨테이너로 제한하면서 이미지를 드래그하고 확대/축소하는 방법은 무엇입니까? Oct 20, 2023 pm 04:19 PM

JavaScript는 이미지를 컨테이너로 제한하면서 이미지 드래그 및 확대/축소를 어떻게 구현합니까? 웹 개발을 하다 보면 이미지를 끌어서 확대/축소해야 하는 경우가 종종 있습니다. 이 기사에서는 JavaScript를 사용하여 이미지 드래그 및 확대/축소를 구현하고 컨테이너 내 작업을 제한하는 방법을 소개합니다. 1. 이미지 드래그 이미지를 드래그하려면 마우스 이벤트를 사용하여 마우스 위치를 추적하고 그에 따라 이미지를 이동할 수 있습니다. 다음은 샘플 코드입니다. //그림 요소 varimage 가져오기

확대/축소 및 페이드 애니메이션을 추가하면서 JavaScript를 사용하여 이미지의 위아래 슬라이딩 전환 효과를 얻는 방법은 무엇입니까? 확대/축소 및 페이드 애니메이션을 추가하면서 JavaScript를 사용하여 이미지의 위아래 슬라이딩 전환 효과를 얻는 방법은 무엇입니까? Oct 20, 2023 pm 05:15 PM

JavaScript는 확대/축소 및 페이드 애니메이션을 추가하면서 이미지의 위아래 슬라이딩 전환 효과를 어떻게 달성할 수 있습니까? 웹 디자인에서는 사용자 경험을 향상시키기 위해 이미지 전환 효과가 자주 사용됩니다. 이러한 전환 효과 중에서 위아래로 슬라이딩, 확대/축소 및 페이딩 애니메이션은 비교적 일반적이고 매력적입니다. 이 기사에서는 JavaScript를 사용하여 이 세 가지 애니메이션 효과를 결합하는 방법을 소개합니다. 먼저 HTML을 사용하여 표시할 이미지 요소가 포함된 기본 웹 페이지 구조를 구축해야 합니다. 다음은 예시입니다

See all articles