J’ai relevé un problème très étrange lié à l’événement jQuery UI Resizable, lorsque la propriété “ghost” a été définie.
Par défaut, lorsque je règle le sens du dimensionnement sur le sud et que je n’ai pas activé fantôme, le redimensionnement fonctionne comme prévu, exemple:
Lorsque je redimensionne ce sud, la largeur est maintenue à 300px.
Cependant, lorsque “fantôme” est activé, le redimensionnement diminue la largeur de 2 pixels à chaque action glisser / relâcher / glisser / relâcher.
J’ai consulté le code de l’interface utilisateur de jQuery, mais je ne trouve aucune référence expliquant pourquoi cela se produit.
Quelqu’un d’autre a-t-il vu cela?
Cela se produit chaque fois que vous avez un helper
personnalisé dans votre redimensionnable (bien que je ne sois pas tout à fait pourquoi …), fantôme est simplement un type spécifique d’assistant. Si vous regardez le code du widget redimensionnable, vous verrez ce bit dans la fonction _renderProxy
:
this.helper.addClass(this._helper).css({ width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", left: this.elementOffset.left + "px", top: this.elementOffset.top + "px", zIndex: ++o.zIndex //TODO: Don't modify option });
Je ne sais pas quel est le but de ces outerWidth - 1
, mais vous pouvez le contourner en développant le widget:
$.widget("ui.resizable", $.ui.resizable, { _renderProxy: function() { this._super(); this.helper.css({ width: this.element.outerWidth(), height: this.element.outerHeight() }); } });
Avertissement : à utiliser avec prudence! Je montre simplement comment résoudre le problème. Je ne sais pas ce qui a poussé l’auteur initial à inclure ces -1
mais je suppose qu’il avait de bonnes raisons.
Voici une mise à jour sur le violon de @ ılǝ avec ceci: http://jsfiddle.net/py308nr7/