2010-10-07 15 views

Odpowiedz

11

Dodanie linku do Raphael.blur w oddzielnej odpowiedzi, zgodnie z żądaniem OP.

http://github.com/DmitryBaranovskiy/raphael/blob/master/plugins/raphael.blur.js

Updated przykładowy kod:

var shadow = canvas.path(p); 
shadow.attr({stroke: "none", fill: "#555", translation: "4,4"}); 
shadow.blur(4); 
var shape = canvas.path(p); 

Należy pamiętać, że w komentarzach Dmitry on mówi, że nie ma wsparcia WebKit. Używa elementu <filter> i efektu filtra feGaussianBlur. WebKit wdrożył efekt feGaussianBlur, ale filtry są unstable i są wyłączone w Safari (może działać w Chrome 5 - zdecydowanie powinno działać w Chrome 6).

+0

Czy funkcja '.blur' jest nieudokumentowana? Nie można go znaleźć nigdzie w dokumentach Raphaela. Czy jest rodzimy? –

+0

To jest wtyczka Raphael. Możesz go uzyskać pod linkiem powyżej i umieścić go na swojej stronie po raphael.js. –

+3

Adres URL wtyczki wydaje się być uszkodzony (uzyskanie 404), ktoś ma działający link? – soulBit

2

Najprostszym sposobem jest narysowanie obiektu wypełnieniem w kolorze cienia, przesunięcie o kilka pikseli, a następnie narysowanie rzeczywistego obiektu na wierzchu.

var shadow = canvas.path(p); 
shadow.attr({stroke: "none", fill: "#555", translation: "4,4"}); 
var shape = canvas.path(p); 

W razie potrzeby można również dostosować atrybut krycia.

+0

ale cień kolorowe napełnienia będzie mieć stały brzeg. Szukam krawędzi, która jest zamazana, od jasnoszarego do 0% alfa. wiesz? –

+1

Raphael ma wtyczkę rozmycia. Nigdy go nie używałem, więc nie mogę ręczyć za to, ale to Dmitry, więc możemy założyć, że wie, co robi ;-) http://github.com/DmitryBaranovskiy/raphael/blob/master/plugins/ raphael.blur.js –

+0

To ciekawe. Powinieneś przesłać ją jako odpowiedź, a ja ją przyjmuję. Jeśli tego nie zrobisz, odpowiem sam za 3 dni. Dzięki. Cień powinien być zakodowany na Rafaela, aby był prostszy. –

15

Można użyć Element.glow([glow]) aby uzyskać efekt cienia. http://raphaeljs.com/reference.html#Element.glow

+0

+1, które sprawdziły się u mnie. Robię ogólny widget bąbelkowy za pomocą Raphaela i jQuery. To pomaga, dzięki. –

+0

Dzięki temu nie pomyślałem o używaniu blasku. Wartości domyślne dla blasku to czarny kolor z kryciem 0,5, co sugeruje, że jest przeznaczony do rysowania cieni. –

+0

Link w tej odpowiedzi jest teraz nieaktywny. Myślę, że musisz teraz użyć wtyczki. –

0

Możesz użyć blasku, aby dodać cienie.

.glow({ color: '#900', width:10, offsetx:5 }) // random example...

sprawdzenie się z documentation

Powiązane problemy