2013-04-09 24 views
7

Tôi đang sử dụng Rafael.js để vẽ hình chữ nhật trên hình ảnh. Vấn đề của tôi với thiết lập màu sắc đột quỵ là nền có thể tối hoặc sáng hoặc bất kỳ màu nào. Tôi nghĩ rằng cách tốt nhất để giải quyết vấn đề đó là sử dụng các đường đứt quãng. Tuy nhiên, cuộc gọi nàyVẽ hình chữ nhật với các đường đứt nét bằng cách sử dụng Rafael.js

circle = Canvas.paper.rect(left, topCoord, width, height).attr({stroke-dasharray:"---"}); 

không hoạt động. Firebug (trên FireFox 20.0) trả về một thông báo lỗi nói rằng một hàm hiện có trong tệp .js của tôi không tồn tại. Có vẻ như dấu gạch ngang đột quỵ không hợp lệ cho hình chữ nhật.

lỗi

Trả lời

8

Javascript cơ bản:

{stroke-dasharray:"---"} 

nên là:

{"stroke-dasharray":"---"} 

Ngoài ra: "---" không phải là một giá trị được hỗ trợ cho stroke-dasharray; nó nên là:

{"stroke-dasharray":"--"} 
+0

Cảm ơn. Điều đó làm cho lỗi biến mất nhưng tôi vẫn nhận được các đường màu đen chắc chắn cho hình chữ nhật. Cảm ơn, Peter. – OtagoHarbour

+1

Nhìn vào [tham chiếu Raphael] (http://raphaeljs.com/reference.html) Tôi không nghĩ rằng ba dấu gạch ngang là một tùy chọn hợp lệ. Hãy thử hai: '" - "' – searlea

+0

Điều đó làm việc để có được các đường đứt nét. Cảm ơn rất nhiều! Để có hai màu sắc khác nhau, tôi dường như cần hai cuộc gọi: một với {"stroke-dasharray": "-"} và một với {"stroke": "white", "stroke-dasharray": "- .." }. Cảm ơn rất nhiều! – OtagoHarbour

9

Không "---", có thể đột quỵ-dasharray: [“”, “-”, “.”, “-.”, “-..”, “. ”, “- ”, “--”, “- .”, “--.”, “--..”]

Một cách để tô màu cho đột quỵ là sử dụng HSV hoặc không gian HSL, sau đó chọn đối diện (hoặc lân cận) phổ. Hãy thử câu trả lời từ: Given an RGB value, how do I create a tint (or shade)?

+0

Thú vị. Tôi nghĩ lý tưởng sẽ là xor với hình ảnh cơ bản nhưng Rafael dường như không có lựa chọn đó. Cảm ơn, Peter. – OtagoHarbour

+0

Một số trình duyệt có thể hỗ trợ thao tác để tạo ánh sáng xung quanh nó. Hãy thử http://commons.oreilly.com/wiki/index.php/SVG_Essentials/Filters –