2013-03-12 12 views

risposta

3

vedere la risposta al di sotto di un modo migliore, ma si può fare un rettangolo che riempie l'intera area tela:

var paper = Raphael(200, 350, 320, 200); 
var rect = paper.rect(0, 0, 320, 200); 
rect.attr("fill", "#f00"); 
rect.attr("stroke", "#f00"); 
24

In realtà, è del tutto possibile per impostare il colore di sfondo per una tela di canapa SVG - l'avvertenza è che, sebbene Raphael controlli tutti gli elementi all'interno della tela, offre pochissimo controllo stilistico direttamente sulla tela stessa.

Fortunatamente, è possibile accedere al nodo dom associato a un oggetto di carta Raphael tramite la proprietà di canvas. Che lo rende facile fare le cose in questo modo:

var paper = Raphael(200, 350, 320, 200); 
paper.canvas.style.backgroundColor = '#F00'; 

Meglio ancora, si potrebbe definire la tela di fondo/bordo/padding come parte del foglio di stile della vostra applicazione, e poi basta assicurarsi che la tela è impostato per utilizzare l'appropriato stile:

var paper = Raphael(200, 350, 320, 200); 
paper.canvas.className += ' my_svg_class'; 
+3

+1 funzionano perfettamente sia in modalità VML sia in SVG (sia su IE8 che su IE7). ** http: //jsbin.com/uYilUqe/2/edit** Stranamente, il metodo '.className' non funziona per me in Chrome o Firefox (o IE9 e IE10) aggiornati, ma funziona in IE7 e IE8. Non ho mai visto qualcosa funzionare nel vecchio IE ma non nei browser standard prima ... – user568458

+2

@ user568458 Ho avuto lo stesso problema, ma a quanto pare può essere risolto nei browser moderni impostando anche il campo '' baseVal'': '' paper.canvas.className.baseVal + = "my_svg_class" '' – easuter

Problemi correlati