Maison interface Web js tutoriel Comment implémenter le glisser-zoomer des images en JavaScript tout en étant limité au conteneur et en conservant les proportions ?

Comment implémenter le glisser-zoomer des images en JavaScript tout en étant limité au conteneur et en conservant les proportions ?

Oct 18, 2023 am 11:28 AM
缩放 rapport hauteur/largeur Glisser l'image Limites des conteneurs

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

JavaScript Comment faire glisser et zoomer des images en se limitant au conteneur et en conservant les proportions ?

Dans de nombreuses conceptions Web, nous devrons peut-être implémenter la fonction glisser-zoomer des images dans le conteneur. De plus, afin de conserver les proportions de l’image, nous devons effectuer des traitements supplémentaires. Cet article présentera en détail comment utiliser JavaScript pour implémenter cette fonction et fournira des exemples de code spécifiques.

Tout d'abord, nous créons une structure en HTML qui contient des images et des conteneurs. Voici un exemple :

<div id="container">
  <img src="image.jpg" id="image">
</div>
Copier après la connexion

Ensuite, nous devons styliser le conteneur en utilisant CSS. Un exemple est le suivant :

#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;
}
Copier après la connexion

En CSS, nous définissons la taille et le style de bordure du conteneur et définissons sa position sur relative. L'image, quant à elle, utilise un positionnement absolu et définit sa taille à 100 % pour remplir le conteneur. object-fit: contain; est utilisé pour conserver les proportions de l'image. 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;
});
Copier après la connexion

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

Maintenant, nous pouvons commencer à écrire du code JavaScript pour implémenter des fonctions de glisser et de zoom. Nous utiliserons les événements de la souris pour contrôler la position et la taille de l'image. Un exemple est le suivant :

rrreee

Dans le code ci-dessus, nous utilisons l'événement mousedown pour identifier le moment où la souris est enfoncée, et enregistrons la position et la taille initiales. Ensuite, nous écoutons l'événement mousemove pour mettre à jour la position et la taille de l'image en temps réel. Pendant le mouvement, nous calculons le décalage de la souris et modifions la taille de l'image en fonction du décalage. Enfin, nous utilisons l'événement mouseup pour identifier le moment où la souris est relâchée et arrêter l'opération de glissement.

Il convient de noter que pendant le processus de déplacement et de mise à l'échelle, nous limitons la taille de l'image en déterminant si les nouvelles largeur et hauteur se situent dans une certaine plage du conteneur. Cela garantit que l'image est toujours dans le conteneur et conserve les proportions.

Pour résumer, grâce au code JavaScript ci-dessus, nous pouvons réaliser la fonction de glisser et de zoom de l'image dans le conteneur, et conserver les proportions de l'image. Ceci est très pratique dans de nombreuses conceptions Web. 🎜🎜Bien sûr, ce qui précède n'est qu'un exemple simple, vous pouvez l'ajuster et l'optimiser en fonction de vos propres besoins. J'espère que cet article vous aidera ! 🎜

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
3 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,

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 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.

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

Comment JavaScript implémente-t-il le glisser-zoomer des 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 faire glisser l'image, nous pouvons utiliser les événements de la souris pour suivre la position de la souris et déplacer la position de l'image en conséquence. Voici un exemple de code : //Obtenir l'élément d'image varimage

Comment utiliser JavaScript pour obtenir l'effet de commutation coulissante de haut en bas des images tout en ajoutant des animations de zoom et de fondu ? Comment utiliser JavaScript pour obtenir l'effet de commutation coulissante de haut en bas des images tout en ajoutant des animations de zoom et de fondu ? Oct 20, 2023 pm 05:15 PM

Comment JavaScript peut-il obtenir l'effet de commutation coulissante de haut en bas des images tout en ajoutant des animations de zoom et de fondu ? Dans la conception Web, les effets de changement d’image sont souvent utilisés pour améliorer l’expérience utilisateur. Parmi ces effets de commutation, les animations de glissement de haut en bas, de zoom et de fondu sont relativement courantes et attrayantes. Cet article explique comment utiliser JavaScript pour réaliser la combinaison de ces trois effets d'animation. Tout d’abord, nous devons utiliser HTML pour créer une structure de page Web de base contenant les éléments d’image à afficher. Ce qui suit est un exemple

See all articles