2013-03-12 7 views

Odpowiedz

3

Zobacz odpowiedź poniżej lepszy sposób, ale można zrobić prostokąt, który wypełnia cały obszar kanwie:

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

Właściwie, to całkiem możliwe, aby ustawić kolor tła dla płótnie SVG - zastrzeżeniem jest to, że chociaż Rafael kontroluje wszystkie elementy wewnątrz płótna, oferuje bardzo niewiele kontroli stylistycznej bezpośrednio nad samym płótnem.

Na szczęście można uzyskać dostęp do węzła dom powiązanego z obiektem papieru Raphaela za pośrednictwem jego właściwości canvas. To sprawia, że ​​łatwo robić rzeczy tak:

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

jeszcze lepiej, można zdefiniować płótno tła/granicy/dopełnienie jako część arkusza danej aplikacji, a potem po prostu upewnij się, że płótno jest skonfigurowany do korzystania odpowiedni styl:

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

+1 oba działają doskonale zarówno w trybie VML, jak i SVG (zarówno w IE8, jak i IE7). ** http: //jsbin.com/uYilUqe/2/edit** O dziwo, metoda '.className' nie działa dla mnie w aktualnym Chrome lub Firefox (lub IE9 i IE10), ale działa w IE7 i IE8. Nigdy nie widziałem czegoś działającego w starym IE, ale nie w standardowych przeglądarkach przed ... – user568458

+2

@ user568458 Miałem ten sam problem, ale najwyraźniej można go obejść we współczesnych przeglądarkach, ustawiając także pole '' baseVal'': '' paper.canvas.className.baseVal + = "my_svg_class" '' – easuter

Powiązane problemy