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

Comment obtenir un comportement correct de glisser/redimensionner jQuery avec l'échelle de transformation CSS ?

Linda Hamilton
Libérer: 2024-10-27 08:24:31
original
357 Les gens l'ont consulté

How to Achieve Correct jQuery Drag/Resize Behavior with CSS Transform Scale?

Correction du glisser/redimensionner jQuery avec l'échelle de transformation CSS

Arrière-plan

Application des transformations CSS à un élément puis l'utilisation des plugins déplaçables et redimensionnables de jQuery sur ses enfants peuvent introduire un désalignement entre le curseur de la souris et l'élément déplacé ou redimensionné. Cela est dû au facteur d'échelle appliqué à l'élément.

Solution de correctifs jQuery

Une solution précédente impliquait de patcher les plugins déplaçables et redimensionnables de jQuery pour ajuster le décalage de la souris par le facteur d’échelle. Cette méthode nécessitait de modifier le code source des plugins.

Solution alternative : gestionnaires de rappel

Une solution alternative consiste à utiliser les gestionnaires de rappel fournis par les plugins redimensionnables et déplaçables. Cela élimine le besoin de patcher jQuery.

Correctif redimensionnable

<br>$(this).resizing({</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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;

}
Copier après la connexion

});

Dans le gestionnaire de redimensionnement, calculez le changement de largeur et de hauteur, appliquez l'inverse de l'échelle de zoom pour ajuster la nouvelle largeur et hauteur, et mettez à jour le ui.size objet en conséquence.

Correctif déplaçable

<br>$(this).draggable({</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">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;

}
Copier après la connexion

});

Dans le gestionnaire de déplacement, calculez le changement des positions gauche et supérieure, appliquez l'inverse de l'échelle de zoom pour ajuster les nouvelles positions gauche et supérieure, et mettez à jour le ui.position de l'objet en conséquence.

Conclusion

Cette solution alternative utilisant des gestionnaires de rappel fournit un moyen non invasif de corriger le comportement de glisser/redimensionner lorsque les transformations CSS avec échelle sont appliqué.

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
Article précédent:Quelle solution CSS de réinitialisation HTML5 équilibre le mieux la compatibilité du navigateur et la flexibilité de conception ? Article suivant:Comment faire pivoter le texte verticalement dans les tableaux HTML à l'aide de CSS ?
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
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!