Maison > interface Web > js tutoriel > le corps du texte

Comment implémenter la mise à l'échelle automatique des images et conserver les proportions en JavaScript ?

王林
Libérer: 2023-10-21 08:04:51
original
1611 Les gens l'ont consulté

JavaScript 如何实现图片的自动缩放并保持纵横比的功能?

JavaScript Comment implémenter la mise à l'échelle automatique des images et conserver les proportions ?

En développement web, il est souvent nécessaire d'afficher et d'ajuster les images. Une fonctionnalité commune consiste à redimensionner automatiquement les images et à conserver leur rapport hauteur/largeur. Cet article explique comment utiliser JavaScript pour réaliser cette fonction et fournit des exemples de code spécifiques.

1. Mise à l'échelle automatique en écoutant les changements de taille de fenêtre

Tout d'abord, nous pouvons réaliser une mise à l'échelle automatique des images en écoutant les événements de changement de taille de fenêtre. Les étapes spécifiques sont les suivantes :

  1. Obtenir les éléments de l'image
    Tout d'abord, nous devons obtenir les éléments de l'image qui doivent être automatiquement mis à l'échelle. Il peut être obtenu via des méthodes telles que getElementById ou querySelector.
var img = document.getElementById("myImage");
Copier après la connexion
  1. Écriture de la fonction de mise à l'échelle automatique
    Ensuite, nous devons écrire une fonction de mise à l'échelle automatique qui sera appelée lorsque la taille de la fenêtre change. À l'intérieur de cette fonction, nous pouvons réaliser une mise à l'échelle en modifiant les propriétés CSS de l'image.
function resizeImage() {
  // 获取窗口宽度和高度
  var windowWidth = window.innerWidth;
  var windowHeight = window.innerHeight;
  
  // 获取图片原始宽度和高度
  var imgWidth = img.naturalWidth;
  var imgHeight = img.naturalHeight;
  
  // 计算缩放比例
  var scale = Math.min(windowWidth / imgWidth, windowHeight / imgHeight);
  
  // 设置图片宽度和高度
  img.style.width = imgWidth * scale + "px";
  img.style.height = imgHeight * scale + "px";
}

// 初始化时调用一次该函数,确保图片按照正确的初始大小显示
resizeImage();

// 监听窗口大小变化事件
window.addEventListener("resize", resizeImage);
Copier après la connexion
  1. Appelez la fonction de mise à l'échelle automatique
    Enfin, pendant la phase d'initialisation et lorsque la taille de la fenêtre change, la fonction de mise à l'échelle automatique est appelée pour réaliser une mise à l'échelle automatique de l'image.
window.addEventListener("load", function() {
  // 初始化时调用一次自动缩放函数
  resizeImage();
  
  // 监听窗口大小变化事件
  window.addEventListener("resize", resizeImage);
});
Copier après la connexion

2. Utilisez CSS pour obtenir une mise à l'échelle automatique et maintenir les proportions

En plus d'utiliser JavaScript pour implémenter la fonction de mise à l'échelle automatique, nous pouvons également l'implémenter via du CSS pur. Les étapes spécifiques sont les suivantes :

  1. Définir la largeur et la hauteur du conteneur d'image
    Tout d'abord, nous devons définir une largeur et une hauteur fixes pour le conteneur d'image. De cette façon, lorsque la taille de la fenêtre change, la taille du conteneur d'image ne change pas, conservant ainsi les proportions de l'image.
.image-container {
  width: 400px;
  height: 300px;
  overflow: hidden;  /* 设置溢出隐藏,防止图片超出容器大小 */
}
Copier après la connexion
  1. Définissez la largeur et la hauteur de l'image
    Ensuite, nous devons définir la largeur et la hauteur de l'image et la redimensionner via la propriété transform de CSS3. Les étapes spécifiques sont les suivantes :
.image-container img {
  width: 100%;
  height: auto;
  transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
}
Copier après la connexion
  1. Utilisez des requêtes multimédias pour ajuster la taille du conteneur d'images
    Enfin, nous pouvons utiliser des requêtes multimédias pour ajuster la largeur et la hauteur du conteneur d'images en fonction des différentes tailles de fenêtre. De cette manière, une mise à l'échelle automatique des images peut être obtenue.
@media (max-width: 768px) {
  .image-container {
    width: 100%;
    height: auto;
  }
}
Copier après la connexion

Résumé :

Cet article explique comment utiliser JavaScript pour redimensionner automatiquement les images et conserver les proportions, et donne des exemples de code spécifiques. Qu'il soit implémenté en surveillant les changements de taille de fenêtre ou en utilisant CSS, l'effet de mise à l'échelle automatique des images peut être facilement obtenu. Les lecteurs peuvent choisir la méthode appropriée à mettre en œuvre en fonction de leurs besoins réels.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal