2012-03-05 124 views
1

我最近開始使用SVG路徑。我正在使用JavaScript SVG和Canvases來允許用戶使用鼠標動態繪製。清除或製作部分svg路徑透明

我的問題之一是,當用戶試圖繪製一條已經存在的路徑時,需要一段時間才能完成它,我想知道是否有一種高效/平滑的方法來完成此操作。

我的其他問題是刪除已經繪製的SVG路徑的一部分。我知道我可以使用不同的顏色(例如白色)來重畫路徑,但是如果存在背景圖片,它仍然會遮擋背景的一部分。無論如何編輯部分路徑變得透明或甚至刪除它的一部分?

我嘗試獲取畫布的背景顏色並使用該顏色繪製路徑,但它只獲取原始點的顏色。

感謝。

+0

http://raphaeljs.com/是一個能夠輕鬆選擇子路徑的js庫。然後,您可以將路徑分成兩個子路徑,不包括被擦除的部分。 – 2012-03-05 09:38:06

回答

1

目前爲我工作的解決方案如下。

  • 在JavaScript文件中,創建了一個數組。也是一個計數器。

    var idArray = new Array();
    var idCounter = 0;

  • 作爲路徑正在創建的ID被推動到所述陣列。

    idArray.push(idCounter);

  • 然後通過使用"Name_of_path".attr('id',idCounter);的路徑的ID設置。

  • 現在,通過循環使用計數器ii < idArray.length的ID,您可以找到哪個路徑被點擊並將其刪除。

    for(var i = 0;i<list.length;i++){
    $("#"+list[i]).click(function(){
    var v = "name_of_paper".getById($(this).id);
    $(this).remove();
    });

  • 還通過定義的樣式裏面的id類,你可以改變的不透明度。

該解決方案只是完全刪除路徑,我還沒有解決方案來刪除部分路徑。只是一個解決方法。