Maison interface Web js tutoriel Comment utiliser JavaScript pour faire glisser et zoomer des images tout en les limitant au conteneur ?

Comment utiliser JavaScript pour faire glisser et zoomer des images tout en les limitant au conteneur ?

Oct 20, 2023 pm 04:19 PM
拖动 缩放 限制

JavaScript 如何实现图片的拖动缩放同时限制在容器内?

JavaScript Comment réaliser le glisser et le zoom d'images tout en les limitant au conteneur ?

Dans le développement Web, nous rencontrons souvent le besoin de faire glisser et de zoomer des images. Cet article expliquera comment utiliser JavaScript pour implémenter le glisser-déposer et le zoom des images et limiter les opérations dans le conteneur.

1. Faites glisser l'image

Pour réaliser le glissement de l'image, nous pouvons utiliser l'événement souris pour suivre la position de la souris et déplacer la position de l'image en conséquence. Voici un exemple de code :

// 获取图片元素
var image = document.getElementById('image');

var isDragging = false; // 是否正在拖动
var startX = 0; // 开始拖动时的鼠标水平位置
var startY = 0; // 开始拖动时的鼠标垂直位置
var offsetX = 0; // 图片偏移量
var offsetY = 0; // 图片偏移量

// 鼠标按下时的事件处理函数
image.onmousedown = function(e) {
  isDragging = true;
  startX = e.clientX;
  startY = e.clientY;
  offsetX = image.offsetLeft;
  offsetY = image.offsetTop;
};

// 鼠标移动时的事件处理函数
document.onmousemove = function(e) {
  if (isDragging) {
    var deltaX = e.clientX - startX;
    var deltaY = e.clientY - startY;
    image.style.left = offsetX + deltaX + 'px';
    image.style.top = offsetY + deltaY + 'px';
  }
};

// 鼠标松开时的事件处理函数
document.onmouseup = function() {
  isDragging = false;
};
Copier après la connexion

Dans le code ci-dessus, nous utilisons trois fonctions de gestion d'événements : onmousedown, onmousemove et onmouseup Réaliser le glisser effet. Dans onmousedown, nous enregistrons la position de la souris et le décalage initial de l'image. Dans onmousemove, si un glissement est en cours, le déplacement de la souris est calculé et la position de l'image est mise à jour. Dans onmouseup, nous définissons l'indicateur de déplacement isDragging sur false. onmousedownonmousemoveonmouseup 三个事件处理函数来实现拖动效果。在 onmousedown 中,我们记录了鼠标的位置和图片的初始偏移量。在 onmousemove 中,如果正在拖动,就计算鼠标的位移,并更新图片的位置。在 onmouseup 中,我们将拖动标志 isDragging 设为 false

二、缩放图片

要实现图片的缩放,我们可以使用鼠标滚轮事件来监听鼠标滚动,并改变图片的大小。下面是一个示例代码:

// 获取图片元素
var image = document.getElementById('image');

var scaleFactor = 1; // 缩放比例

// 鼠标滚轮事件处理函数
image.onmousewheel = function(e) {
  e.preventDefault();
  
  var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail))); // 跨浏览器兼容性处理

  // 计算缩放比例
  if (delta > 0) {
    scaleFactor *= 1.1;
  } else {
    scaleFactor *= 0.9;
  }

  // 设置图片的缩放
  image.style.transform = 'scale(' + scaleFactor + ')';
};
Copier après la connexion

在上面的代码中,我们使用了浏览器的滚轮事件来监听鼠标滚动。我们通过判断滚轮滚动的方向,来改变缩放比例 scaleFactor。然后,我们使用 transform

2. Zoom sur l'image

Pour réaliser le zoom de l'image, nous pouvons utiliser l'événement de la molette de la souris pour écouter le défilement de la souris et modifier la taille de l'image. Voici un exemple de code :

// 获取图片元素和容器元素
var image = document.getElementById('image');
var container = document.getElementById('container');

// 容器的宽度和高度
var containerWidth = container.offsetWidth;
var containerHeight = container.offsetHeight;

// 获取图片的原始宽度和高度
var imageWidth = image.offsetWidth;
var imageHeight = image.offsetHeight;

// 计算边界
var maxX = containerWidth - imageWidth;
var maxY = containerHeight - imageHeight;

// 拖动图片时的事件处理函数
// ...

// 缩放图片时的事件处理函数
// ...
Copier après la connexion
Dans le code ci-dessus, nous utilisons l'événement wheel du navigateur pour écouter le défilement de la souris. Nous modifions le taux de zoom scaleFactor en jugeant la direction de la molette de défilement. Ensuite, nous utilisons l'attribut transform pour définir la mise à l'échelle de l'image.

3. Restreint au conteneur

Afin de restreindre l'image au conteneur, nous devons ajouter quelques restrictions au code de glisser-zoomer. Voici un exemple de code : 🎜rrreee🎜 Dans le code ci-dessus, nous obtenons d'abord la largeur et la hauteur de l'élément conteneur, ainsi que la largeur et la hauteur d'origine de l'élément image. Ensuite, nous avons calculé les limites dans lesquelles l'image peut se déplacer dans le conteneur. Dans les gestionnaires d'événements glisser et zoom, nous utilisons ces limites pour limiter la position et la taille de l'image. 🎜🎜Pour résumer, nous pouvons utiliser le code ci-dessus pour réaliser le glisser et le zoom de l'image et la limiter au conteneur. Cela permet aux utilisateurs de faire glisser et de zoomer librement sur les images dans le conteneur. Bien entendu, nous pouvons également modifier et optimiser le code en fonction de besoins spécifiques. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Afficher le guide de mise à l'échelle sur Windows 11 Afficher le guide de mise à l'échelle sur Windows 11 Sep 19, 2023 pm 06:45 PM

Nous avons tous des préférences différentes en matière de mise à l'échelle de l'affichage sur Windows 11. Certaines personnes aiment les grandes icônes, d’autres les petites. Cependant, nous sommes tous d’accord sur le fait qu’il est important d’avoir la bonne échelle. Une mauvaise mise à l'échelle des polices ou une mise à l'échelle excessive des images peuvent nuire à la productivité lorsque vous travaillez. Vous devez donc savoir comment la personnaliser pour tirer le meilleur parti des capacités de votre système. Avantages du zoom personnalisé : Il s'agit d'une fonctionnalité utile pour les personnes qui ont des difficultés à lire du texte à l'écran. Cela vous aide à voir plus sur l’écran à la fois. Vous pouvez créer des profils d'extension personnalisés qui s'appliquent uniquement à certains moniteurs et applications. Peut aider à améliorer les performances du matériel bas de gamme. Cela vous donne plus de contrôle sur ce qui est sur votre écran. Comment utiliser Windows 11

Problème de zoom Safari sur iPhone : voici la solution Problème de zoom Safari sur iPhone : voici la solution Apr 20, 2024 am 08:08 AM

Si vous n'avez pas de contrôle sur le niveau de zoom dans Safari, faire avancer les choses peut être délicat. Donc, si Safari semble zoomé, cela pourrait être un problème pour vous. Voici quelques façons de résoudre ce problème mineur de zoom dans Safari. 1. Grossissement du curseur : sélectionnez « Affichage » > « Grossissement du curseur » dans la barre de menu Safari. Cela rendra le curseur plus visible sur l'écran, ce qui facilitera son contrôle. 2. Déplacez la souris : Cela peut paraître simple, mais parfois, le simple fait de déplacer la souris vers un autre emplacement de l'écran peut automatiquement la ramener à sa taille normale. 3. Utilisez les raccourcis clavier Fix 1 – Réinitialiser le niveau de zoom Vous pouvez contrôler le niveau de zoom directement depuis le navigateur Safari. Étape 1 – Lorsque vous êtes dans Safari

Comment zoomer des pages côte à côte dans Word Comment zoomer des pages côte à côte dans Word Mar 19, 2024 pm 07:19 PM

Lorsque nous utilisons des documents Word pour éditer des fichiers, il y a parfois plusieurs pages. Nous voulons les afficher côte à côte et vérifier l'effet global. Cependant, comme nous ne savons pas comment fonctionner, nous devons souvent faire défiler pendant longtemps. pour visualiser page par page. Je ne sais pas si vous avez déjà rencontré une situation similaire. En fait, nous pouvons facilement la résoudre à ce stade, à condition d'apprendre à placer les pages de zoom côte à côte. Ci-dessous, jetons un coup d’œil et apprenons ensemble. Tout d’abord, nous créons et ouvrons une nouvelle page dans le document Word, puis entrons un contenu simple pour le distinguer plus facilement. 2. Par exemple, si nous voulons réaliser un zoom sur les mots et un affichage côte à côte, nous devons rechercher [Affichage] dans la barre de menu, puis sélectionner [Pages multiples] dans les options de l'outil d'affichage, comme indiqué dans la figure. ci-dessous : 3. Recherchez [Pages multiples] et cliquez sur,

Mar 22, 2024 pm 02:11 PM

Avec la popularité des comptes vidéo sur les réseaux sociaux, de plus en plus de personnes commencent à utiliser des comptes vidéo pour partager leur vie quotidienne, leurs idées et leurs histoires. Cependant, certains utilisateurs peuvent constater que les commentaires sont restreints, ce qui peut les laisser confus et insatisfaits. 1. Comment supprimer les restrictions de commentaires sur les comptes vidéo ? Pour lever la restriction relative aux commentaires sur un compte vidéo, vous devez d'abord vous assurer que le compte a été correctement enregistré et que l'authentification par votre nom réel a été effectuée. Les comptes vidéo ont des exigences en matière de commentaires. Seuls les comptes ayant effectué une authentification par nom réel peuvent lever les restrictions de commentaires. S'il y a des anomalies dans le compte, ces problèmes doivent être résolus avant que les restrictions de commentaires puissent être levées. 2. Respectez les normes communautaires du compte vidéo. Les comptes vidéo ont certaines normes concernant le contenu des commentaires. Si le commentaire implique un contenu illégal, il vous sera interdit de parler. Pour lever les restrictions de commentaires, vous devez respecter la communauté du compte vidéo

Compétences en édition de documents Word : transformez deux pages en une seule Compétences en édition de documents Word : transformez deux pages en une seule Mar 25, 2024 pm 06:06 PM

Dans les documents Microsoft Word, vous rencontrez souvent la situation de fusionner deux pages de contenu en une seule page, en particulier lorsque vous devez économiser du papier ou lorsque vous devez imprimer un document recto verso. Plusieurs méthodes courantes pour atteindre cet objectif seront présentées ci-dessous. Méthode 1 : Ajustez les marges de la page. Ouvrez d'abord le document Word et recherchez l'option "Mise en page" dans la barre de menu. Après avoir cliqué, le menu des paramètres de mise en page apparaîtra. Ici, vous pouvez ajuster les marges de la page, y compris les marges supérieure, inférieure, gauche et droite. De manière générale, réduire les marges supérieure et inférieure permettra au contenu de tenir sur une seule page. tu peux goûter

Comment utiliser JavaScript pour obtenir l'effet de commutation de glisser gauche et droite des images ? Comment utiliser JavaScript pour obtenir l'effet de commutation de glisser gauche et droite des images ? Oct 21, 2023 am 09:27 AM

Comment obtenir l'effet de commutation de glisser gauche et droite des images avec JavaScript ? Dans la conception Web moderne, les effets dynamiques peuvent améliorer l’expérience utilisateur et l’attrait visuel. L'effet de commutation des images par glisser-déplacer vers la gauche et la droite est un effet dynamique courant, qui permet aux utilisateurs de changer de contenu en faisant glisser des images. Dans cet article, nous présenterons comment utiliser JavaScript pour obtenir cet effet de changement d'image et fournirons des exemples de code spécifiques. Tout d'abord, nous devons préparer du code HTML et CSS pour créer une image contenant plusieurs images.

Comment agrandir ou réduire l'intégralité du tableau Excel Comment agrandir ou réduire l'intégralité du tableau Excel Mar 20, 2024 pm 05:16 PM

Le développement de la technologie informatique, de la technologie des réseaux et de la technologie logicielle a ouvert de grandes perspectives pour la bureautique. Nos processus opérationnels de bureau actuels peuvent tous être effectués électroniquement, ce qui permet de gagner beaucoup de temps. Les tableaux Excel sont des opérations logicielles couramment utilisées. Parfois, en raison de problèmes de papier ou de composition, nous devons agrandir ou réduire l'ensemble des paramètres du tableau Excel, le cas échéant. Toutes les méthodes de fonctionnement pouvant répondre à nos besoins, jetons un coup d'œil au cours suivant. 1. Ouvrez d'abord le logiciel Excel et saisissez les informations pertinentes, comme indiqué dans la figure ci-dessous. 2. Cliquez ensuite sur l'icône dans le coin inférieur droit et déplacez-la vers la gauche ou la droite. Le signe plus peut effectuer un zoom avant et le signe moins peut effectuer un zoom arrière, comme le montre la figure ci-dessous. 3. La deuxième méthode peut également utiliser ctrl + molette de la souris.

Comment redimensionner et faire pivoter des images à l'aide de Python Comment redimensionner et faire pivoter des images à l'aide de Python Aug 17, 2023 pm 10:52 PM

Comment utiliser Python pour redimensionner et faire pivoter des images Introduction : Aujourd'hui, nous utilisons souvent des images pour enrichir notre conception Web, nos applications mobiles, nos réseaux sociaux et d'autres scénarios. Dans le traitement d’images, la mise à l’échelle et la rotation sont deux exigences courantes. Python, en tant que langage de script et puissant outil de traitement d'images, fournit de nombreuses bibliothèques et méthodes pour gérer ces tâches. Cet article explique comment utiliser Python pour redimensionner et faire pivoter des images, et fournit des exemples de code. 1. Zoom sur les images Le zoom sur les images est l'une des opérations de base pour ajuster la taille de l'image.

See all articles