Maison > interface Web > js tutoriel > Comment empêcher l'étirement et l'adaptation des images dans JS

Comment empêcher l'étirement et l'adaptation des images dans JS

php中世界最好的语言
Libérer: 2018-04-13 14:11:46
original
2277 Les gens l'ont consulté

Cette fois, je vais vous montrer comment empêcher l'image de s'étirer et de s'adapter avec JS. Quelles sont les précautions qui empêchent JS de s'étirer et de s'adapter à l'image. cas, jetons un coup d'oeil.

Avant-propos

Je pense que dans le développement Web quotidien, en tant que front-end, vous rencontrez souvent des problèmes d'étirement d'image.

Par exemple, les bannières, les listes d'images et de textes, les avatars, etc. sont tous des endroits où les utilisateurs ou les clients peuvent utiliser indépendamment les images à télécharger. Une fois les images impliquées, le problème de l'étirement de l'image sera bien sûr effectué. télécharger des images, permettant aux utilisateurs ou aux clients de Le client perçoit clairement que le contenu efficace de l'image est la solution optimale. Cependant, sous divers facteurs externes, s'il n'y a pas de recadrage, elle doit être traitée sur l'écran frontal pour y répondre. les exigences de téléchargement d’images de toute taille. Dans ces circonstances, un effet d’affichage optimal est requis.

De combien d'étapes avez-vous besoin pour mettre l'image dans le cadre ? Trois étapes... Commençons

Première étape : dessiner d'abord un cadre (voici une méthode de cadres adaptatifs)

// 假定需要一个在750px屏幕下宽400px,高280px的盒子
// 宽度 = 400 / 750 = 0.5333
// 高度 = 280 / 400 * 0.5333 = 0.3733
<style>
 .img-box{
  position: relative;
  width: 53.33%;
  height: 0;
  padding-bottom: 37.33%;
  overflow: hidden;
  background-color: #eee;
 }
</style>
<body>
 <p id="list">
  <p class="img-box">
   <img src="..."/>
  </p>
 </p>
</body>
Copier après la connexion

Étape 2 : Définir le CSS nécessaire pour l'image

<style>
 .width{
  position: absolute !important;
  width: 100% !important;
  min-height: 100% !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  -ms-transform: translateY(-50%) !important;
  -moz-transform: translateY(-50%) !important;
  -webkit-transform: translateY(-50%) !important;
  -o-transform: translateY(-50%) !important;
  display: block;
 }
 .height{
  position: absolute !important;
  height: 100% !important;
  min-width: 100% !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  -ms-transform: translateX(-50%) !important;
  -moz-transform: translateX(-50%) !important;
  -webkit-transform: translateX(-50%) !important;
  -o-transform: translateX(-50%) !important;
  display: block;
 }
</style>
Copier après la connexion

Étape 3 : js obtient la comparaison de la hauteur de l'image et ajoute un nom de classe à img

//需要注意的是,不能在css中直接给img设置宽度和高度
//否则在img.onload后获取的宽高是css设置的宽高
//同时建议使用dom对象来获取img标签
<script>
 var list = document.getElementById('list');
 getImgWH ( list );
 //执行宽高比对并设置img类名
 function getImgWH ( Obj ) {
  var img = Obj.getElementsByTagName('img');
  for( var i=0 ; i<img.length ; i++ ){
   img[i].onload = function(){
    var width = this.width;
    var height = this.height;
    if ( width > height ) {
     this.classList.add('height');
    } else if ( width < height ) {
     this.classList.add(&#39;width&#39;);
    } else {
     this.style.width = &#39;100%&#39;;
     this.style.height = &#39;100%&#39;;
    }
   }
  }
 }
</script>
Copier après la connexion

Il est relativement simple d'empêcher l'étirement des images, mais dans les projets réels, il faut y prêter suffisamment d'attention. Une page Web deviendra une image ou un échec. Si l'image est étirée, elle attendra simplement que le concepteur s'inquiète. à ce sujet, hahahaha...

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Lorsque le nœud parent est sélectionné dans Jstree, la désactivation des nœuds enfants est également sélectionnée

Paginateur personnalisé dans Swiper Explication détaillée des étapes d'utilisation

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!

Étiquettes associées:
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