La superposition de toile des objets dans Fabric.js
Est-il un moyen pour les objets de la couche sur un Fabric.js toile, via l'officiel de l'API? Actuellement, le seul moyen que j'ai trouvé pour faire ça manuellement itérer à travers la toile._objects et les réorganiser afin qu'ils obtiennent attirés dans un ordre spécifique. Est-il une meilleure façon de faire ce qui ne fonctionne pas (peut-être) de casser l'objet?
Vous devez vous connecter pour publier un commentaire.
[Modifier]
J'ai corrigé mes infos ci-dessous (my bad, j'ai été à l'origine de la pensée de l'KineticJs api).
FabricJS a ces méthodes de l'API qui permet de changer la valeur z-index d'objets:
Sous les couvertures, FabricJs changements le z-index, par la suppression de l'objet à partir de la getObjects() tableau et l'épissage de l'arrière dans la position souhaitée. Il a une belle optimisation qui permet d'intersection des objets.
var idx = some_object.get_zIndex()
étape 1 : Vous pouvez Utiliser
preserveObjectStacking: true
étape 2 : ensuite, utilisez sendtoback,sendtofront....fabricjs options comme ci-dessous
Répondu par ici
Si vous souhaitez définir un classement spécifique pour tous les objets, au lieu de déplacer un objet vers l'avant/vers l'arrière, itératif appels à apporter/envoyer à l'avant/à l'arrière sont lents.
Vous pouvez utiliser le code de
bringToFront
comme source d'inspiration pour la vitesse de ce cas d'utilisation jusqu': https://github.com/kangax/fabric.js/blob/586e61dd282b22c1d50e15c0361875707e526fd8/src/static_canvas.class.js#L1468Et ce faire:
Où comparer définit l'ordre de tri, comme:
Si vous souhaitez apporter des objets de petite taille à l'avant.