Immagina di avere un elemento Rect e desidero decorarlo con un'immagine PNG di dimensioni ridotte (ad esempio 16x16) in alto a sinistra. Non sono in grado di determinare come conseguire tale compito. Ho studiato i documenti ma sono (finora) non riuscito a trovare un campione o un riferimento su come ottenere quel compito. Qualcuno ha una ricetta o un puntatore di esempio che sarebbero disposti a condividere per aiutarmi a raggiungere il mio obiettivo?Come aggiungere un'immagine a un elemento come decoratore?
risposta
È meglio creare una forma personalizzata con rettangolo, immagine e testo. Questo ti dà molta più flessibilità e non devi avere due elementi per esprimere una forma. La forma decorata con una piccola immagine in alto a sinistra può apparire come:
joint.shapes.basic.DecoratedRect = joint.shapes.basic.Generic.extend({
markup: '<g class="rotatable"><g class="scalable"><rect/></g><image/><text/></g>',
defaults: joint.util.deepSupplement({
type: 'basic.DecoratedRect',
size: { width: 100, height: 60 },
attrs: {
'rect': { fill: '#FFFFFF', stroke: 'black', width: 100, height: 60 },
'text': { 'font-size': 14, text: '', 'ref-x': .5, 'ref-y': .5, ref: 'rect', 'y-alignment': 'middle', 'x-alignment': 'middle', fill: 'black' },
'image': { 'ref-x': 2, 'ref-y': 2, ref: 'rect', width: 16, height: 16 }
}
}, joint.shapes.basic.Generic.prototype.defaults)
});
e si può usare in questo modo nei vostri diagrammi:
var decoratedRect = new joint.shapes.basic.DecoratedRect({
position: { x: 150, y: 80 },
size: { width: 100, height: 60 },
attrs: {
text: { text: 'My Element' },
image: { 'xlink:href': 'http://placehold.it/16x16' }
}
});
graph.addCell(decoratedRect);
Si noti come è la forma specifica, l'importante i bit sono markup
, type
e l'oggetto attrs
che fa riferimento agli elementi SVG nel markup dai normali selettori CSS (qui basta taggare i selettori ma è possibile utilizzare le classi se lo si desidera). Per il tag immagine, sfruttiamo gli attributi speciali JointJS per il posizionamento relativo (ref
, ref-x
e ref-y
). Con questi attributi, posizioniamo l'immagine relativamente all'angolo in alto a sinistra dell'elemento rect
e lo sfalsiamo di 2px dal bordo superiore (ref-y
) e 2px dal bordo sinistro (ref-x
).
Una nota: è importante che l'attributo type
('basic.DecoratedRect') corrisponda allo spazio dei nomi definito in forma (joint.shapes.basic.DecoratedRect
). Questo perché quando JointJS ricostruisce i grafici da JSON, esamina l'attributo type
e fa una semplice ricerca nello spazio dei nomi joint.shapes
per vedere se esiste una forma definita per questo tipo.
possiamo creare un tipo di elemento di un'immagine utilizzando la seguente ricetta:
var image = new joint.shapes.basic.Image({
position : {
x : 100,
y : 100
},
size : {
width : 16,
height : 16
},
attrs : {
image : {
"xlink:href" : "images/myImage.png",
width : 16,
height : 16
}
}
});
graph.addCell(image);
Questo posizionerà l'immagine in x = 100, y = 100. È importante che la larghezza/altezza delle dimensioni corrisponda a attrs/larghezza/altezza dell'immagine e sia la larghezza/altezza dell'immagine stessa.
Anche se questo non decorare un elemento precedente, può essere posizionato su un elemento precedente ottenendo l'effetto desiderato.
- 1. Come aggiungere un decoratore personalizzato a un'attività fabric
- 2. Come aggiungere un elemento a un elenco in Groovy?
- 3. Come aggiungere un elemento a un DbSet fittizio (usando Moq)
- 4. Come aggiungere un evento onclick a un elemento joint.js?
- 5. Aggiungere un oggetto MouseOverHandler a un elemento?
- 6. Come posso aggiungere un decoratore a un metodo di oggetto esistente?
- 7. Come aggiungere un'ombra esterna a un elemento del percorso SVG?
- 8. Come aggiungere "style = display:" block "" a un elemento utilizzando jquery
- 9. Come aggiungere un elemento a discesa sulla barra delle azioni
- 10. Come aggiungere un elemento a "body" usando Prototype?
- 11. Haml: come aggiungere classi dinamicamente a un elemento?
- 12. PowerShell: Come aggiungere XmlElement a un elemento non root
- 13. Come aggiungere HTML arbitrario a un elemento di Dart?
- 14. Come aggiungere un elemento all'array C++?
- 15. Come aggiungere cliC#hash ad un elemento
- 16. Come aggiungere un nuovo elemento all'hash
- 17. come aggiungere un elemento tra due elementi
- 18. Come implementare un decoratore wrapper in Java?
- 19. aggiungere metodo a una classe dinamicamente con decoratore
- 20. Come applicare un decoratore a ogni vista Flask
- 21. Come aggiungere un'immagine a un elemento di lavoro TFS; come immagine, non come allegato
- 22. Come aggiungere un elemento a un elenco a discesa in asp.net
- 23. Come implementare un decoratore in PHP?
- 24. Copia elemento dell'interfaccia utente con decoratore
- 25. aggiungere un carattere a ogni elemento in un elenco
- 26. Come aggiungere correttamente ore a un pandas.tseries.index.DatetimeIndex?
- 27. Come costruire un decoratore con parametri opzionali?
- 28. Come scriveresti un decoratore @debuggable in python?
- 29. Come aggiungere un elemento ad un array in rethinkdb
- 30. Come aggiungere un elemento alla fine di un array?