Ho visto grafici in Flash & elementi che sostanzialmente si adattano bene a qualsiasi dimensione del browser o elemento flessibile in cui si trovano all'interno .... Non sono molto esperto di raphaelJS ma puoi farlo e, se così come?Creazione di grafici in RaphaelJS con larghezza del 100%?
risposta
In raphaeljs, è possibile chiamare .setSize su un oggetto Raphael per aggiornarne le dimensioni. Per adattarsi alle modifiche di runtime nelle dimensioni della finestra del browser, è possibile rispondere a un evento di ridimensionamento della finestra. Utilizzando jQuery, si potrebbe fare:
// initialize Raphael object var w = $(window).width(), h = $(window).height(); var paper = Raphael($("#my_element").get(0), w,h); $(window).resize(function(){ w = $(window).width(); h = $(window).height(); paper.setSize(w,h); redraw_element(); // code to handle re-drawing, if necessary });
Normalmente è possibile impostare la larghezza a 100% e definire un viewBox all'interno di SVG. Ma, Raphael JS imposta manualmente larghezza e altezza direttamente sugli elementi SVG, il che uccide questa tecnica.
La risposta di Bosh è ottima, ma per me ha distorto le proporzioni. Ho dovuto modificare alcune cose per farlo funzionare correttamente. Inoltre, includeva alcune logiche per mantenere una dimensione massima.
// Variables
var width;
var height;
var maxWidth = 940;
var maxHeight = 600;
var widthPer;
function setSize() {
// Setup width
width = window.innerWidth;
if (width > maxWidth) width = maxWidth;
// Setup height
widthPer = width/maxWidth;
height = widthPer * maxHeight;
}
var paper = Raphael(document.getElementById("infographic"), 940, 600);
paper.setViewBox(0, 0, 940, 600, true);
window.onresize = function(event) {
setSize();
paper.setSize(width,height);
redraw_element();
}
questo modo si ottiene un sensibile SVG
var w = 500, h=500;
var paper = Raphael(w,h);
paper.setViewBox(0,0,w,h,true);
paper.setSize('100%', '100%');
Questo ha funzionato per me. L'SVG ridimensionato quando ho ridotto la finestra, ma non è più grande; le sue dimensioni erano limitate alla larghezza e all'altezza iniziali. Inoltre, ho specificato "100%" solo per la larghezza. –
Modifica: è necessaria l'altezza del 100%, altrimenti l'altezza non cambierà mentre si ridimensiona. È l'equivalente di 'height: auto' in CSS. –
- 1. Larghezza della linea in raphaeljs
- 2. larghezza: 100% rispetto alla larghezza massima: 100%
- 3. Problemi con larghezza del viewport del 100% in dispositivi mobili?
- 4. RaphaelJS: creazione di elementi click-through?
- 5. Bootstrap 100% larghezza/Larghezza intera
- 6. CSS: larghezza e sfondo del 100%?
- 7. Larghezza HTML 100%
- 8. immissione di testo arresto con larghezza 100% e imbottitura 10px si estende oltre la larghezza 100%
- 9. Creazione dinamica di grafici con jQuery
- 10. CSS Scala un elemento con larghezza 100%
- 11. Fabric.js: tela con larghezza 100% possibile?
- 12. Come si crea una tabella di larghezza del 100% con le colonne di uguale larghezza?
- 13. Posizione larghezza fissa 100%
- 14. Creazione di grafici di rete
- 15. La larghezza del 100% è maggiore del div del genitore
- 16. differenza tra larghezza auto e larghezza 100%
- 17. CSS larghezza 100% con incrementi per 20px
- 18. Creazione di grafici fitdist con ggplot2
- 19. RaphaelJS rotazione non funzionante
- 20. Visualizzare una larghezza div 100% con margini
- 21. Kineticjs vs Raphaeljs
- 22. Larghezza flexbox CSS 100% Firefox
- 23. Styling la creazione di grafici asp.net controlla
- 24. CSS 100% altezza su larghezza
- 25. Imposta larghezza e altezza del contenitore di Google Maps 100%
- 26. Creazione di grafici Excel in Java
- 27. tabella HTML con larghezza 100% non funziona con lunghi testo
- 28. Come rendere un campo di input con larghezza del 100% meno la larghezza del pulsante di invio?
- 29. Blocco di visualizzazione senza larghezza 100%
- 30. Larghezza 100% in React Native Flexbox
Usando 'paper.setSize' colture mia SVG senza adattarne; come potrei ridimensionare, invece di solo ritagliare? – supertrue