Maison > interface Web > tutoriel CSS > ## Comment résoudre les écarts de glisser/redimensionner jQuery avec l'échelle de transformation CSS ?

## Comment résoudre les écarts de glisser/redimensionner jQuery avec l'échelle de transformation CSS ?

Linda Hamilton
Libérer: 2024-10-29 05:53:02
original
697 Les gens l'ont consulté

## How to Resolve jQuery Drag/Resize Discrepancies with CSS Transform Scale?

Drag/Redimensionner jQuery avec l'échelle de transformation CSS

Problème :

Application des transformations CSS ( y compris la mise à l'échelle de la matrice) sur les éléments provoque des écarts dans les opérations de glisser et de redimensionnement effectuées avec les plugins draggable() et resizing() de jQuery.

Solution :

Un utilisateur a proposé un correctif qui a modifié les plugins jQuery, mais cette solution nécessitait de modifier les fichiers du plugin.

Approche alternative :

Vous pouvez également éviter de patcher jQuery en utilisant des gestionnaires de rappel dans le déplaçable et configurations redimensionnables. Cette approche ajuste les nouvelles dimensions et positions en fonction de l'échelle de zoom lors de ces événements.

Code :

Pour redimensionnable :

<code class="js">$(this).resizable({
  minWidth: -(contentElem.width()) * 10,
  minHeight: -(contentElem.height()) * 10,
  resize: function(event, ui) {
    var changeWidth = ui.size.width - ui.originalSize.width;
    var newWidth = ui.originalSize.width + changeWidth / zoomScale;
    var changeHeight = ui.size.height - ui.originalSize.height;
    var newHeight = ui.originalSize.height + changeHeight / zoomScale;
    ui.size.width = newWidth;
    ui.size.height = newHeight;
  }
});</code>
Copier après la connexion

Pour Draggable :

<code class="js">$(this).draggable({
  handle: '.drag-handle',
  start: function(event, ui) {
    ui.position.left = 0;
    ui.position.top = 0;
  },
  drag: function(event, ui) {
    var changeLeft = ui.position.left - ui.originalPosition.left;
    var newLeft = ui.originalPosition.left + changeLeft / ((zoomScale));
    var changeTop = ui.position.top - ui.originalPosition.top;
    var newTop = ui.originalPosition.top + changeTop / zoomScale;
    ui.position.left = newLeft;
    ui.position.top = newTop;
  }
});</code>
Copier après la connexion

Dans ces extraits de code, zoomScale est une variable globale représentant l'échelle actuelle de l'élément transformé.

Cette solution fournit une méthode non intrusive pour gérer le glisser et le redimensionnement dans les éléments mis à l'échelle à l'aide des plugins jQuery.

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