久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

SVG基礎 | 繪制SVG連接標記MARKERS

SVG連接標記(markers)用于標記一條線或路徑的開始、中間個結束位置。你可以在路徑的開始處使用圓形或方形表示,在路徑的結束處使用一個三角箭頭表示。 ...,HTML5中國,中國最大的
1.jpg

  SVG直線
  SVG 連接標記(markers)用于標記一條線或路徑的開始、中間個結束位置。你可以在路徑的開始處使用圓形或方形表示,在路徑的結束處使用一個三角箭頭表示。看羨慕的一個簡單的例子:
  1. <svg xmlns="http://www.w3.org/2000/svg">
  2.   <defs>
  3.       <marker id="markerCircle" markerWidth="8" markerHeight="8" refX="5" refY="5">
  4.           <circle cx="5" cy="5" r="3" style="stroke: none; fill:#000000;"/>
  5.       </marker>

  6.       <marker id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="6"
  7.              orient="auto">
  8.           <path d="M2,2 L2,11 L10,6 L2,2" style="fill: #000000;" />
  9.       </marker>
  10.   </defs>

  11.   <path d="M100,10 L150,10 L150,60"
  12.         style="stroke: #6666ff; stroke-width: 1px; fill: none;
  13.                      marker-start: url(#markerCircle);
  14.                      marker-end: url(#markerArrow);
  15.                    "
  16.           />
  17. </svg>      
復制代碼
2.jpg
  首先我們需要注意的是<defs>元素中有兩個<marker>元素。這兩個<marker>元素定義了連接標記的開始和結束位置的顯示圖形。

  接著要注意在路徑<path>元素中是如何使用連接標記的。這里是在style樣式中使用marker-start和marker-end來分別指定連接標記的開始和結束元素。

  定義一個連接標記

  我們可以使用元素來定義一個連接標記。示例如下:
  1. <marker id="markerCircle" markerWidth="8" markerHeight="8" refX="5" refY="5">
  2.     <circle cx="5" cy="5" r="3" style="stroke: none; fill:#000000;"/>
  3. </marker>  
復制代碼

  上面的例子定義了一個寬度為8,高度為8的連接標記。連接標記的寬度和高度必須明確指定,因為它是一個單獨的圖像元素。

  id屬性是用于在<path>元素中引用連接標記的。

  refX和refY屬性用于指定在連接標記中哪個點用于作為參考點。參考點是當前連接標記的開始位置所在的坐標。在上面的例子中,這個坐標設置在圓的圓心處,也就是說圓的中心被放置在路徑的開始位置。如果你不設置refX和refY屬性,那么它們會被默認設置為0,那么路徑的開始處會被放置在連接標記的左上角位置。

  在連接標記<marker>中是一個<circle>元素,這個圓的圓心被設置為5,5。該中心點位于連接標記虛擬盒模型的中心位置。虛擬盒模型的寬度和高度分別對應markerWidth和markerHeight屬性。

  AUTO ORIENTATION
  來看下面的一個連接標記的例子。這里使用一個三角形作為路徑的箭頭標記。
  1. <marker id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="6"
  2.        orient="auto">
  3.     <path d="M2,2 L2,11 L10,6 L2,2" style="fill: #000000;" />
  4. </marker>   
復制代碼

  在<marker>元素中的<path>元素繪制出一個箭頭向右的三角形。如果路徑不是水平放置的,我們就需要旋轉這個三角形,讓它來適應路徑的方向。如果每次都手動來調整是非常麻煩的事情。這時我們可以將orient屬性設置為auto,這樣就會自動旋轉圖形以適應不同的路徑。

  下面是5條角度不同的直線,兩端分別使用相同的標記圖形。注意這些圖形是如何自適應各種不同角度的直線的。

3.jpg

  你也可以將orient屬性的值設置為一個固定值,它的單位是degrees,例如設置為:45。這會在使用的時候將這個標記(marker)旋轉45度。

  在路徑上引用標記

  你可以使用下面的CSS屬性來在路徑上引用標記:

  •   marker-start
  •   marker-mid
  •   marker-end

  這三個CSS屬性會將標記分別放置在路徑的開始、中間和結束位置。

  要使用這三個CSS屬性,需要在<path>元素的style樣式中使用。想要引用一個標記,只需要在相應的CSS屬性中使用ID來應用即可,例如下邊的例子:
  1. marker-start : url(#markerId);      
復制代碼

  markerId需要替換為你想要使用的<marker>元素。

  下面是一個使用這三個CSS屬性的例子:
  1. <defs>
  2.   <marker id="markerSquare" markerWidth="7" markerHeight="7" refX="4" refY="4"
  3.           orient="auto">
  4.       <rect x="1" y="1" width="5" height="5" style="stroke: none; fill:#000000;"/>
  5.   </marker>

  6.   <marker id="markerArrow" markerWidth="13" markerHeight="13" refX="2" refY="7"
  7.           orient="auto">
  8.       <path d="M2,2 L2,13 L8,7 L2,2" style="fill: #000000;" />
  9.   </marker>
  10. </defs>

  11. <path d="M100,20 l50,0 l0,50 l50,0"
  12.       style="stroke: #0000cc; stroke-width: 1px; fill: none;
  13.                    marker-start: url(#markerSquare);
  14.                    marker-mid: url(#markerSquare);
  15.                    marker-end: url(#markerArrow);

  16.                  "
  17.         />            
復制代碼

  上面的代碼返回的結果如下:

4.jpg

  使用其它元素來引用標記

  <path>元素不是唯一能夠使用標記的SVG元素。<line> <polyline> 和<polygon>元素也能夠使用標記。它們使用標記的方法和<path>元素相同:通過在CSS marker-start、marker-mid和marker-end屬性中引用<marker>元素的ID。

  標記的大小

  我們可以對標記進行縮放來適應路徑描邊的大小,下面是幾個例子:

5.jpg

  這個效果是通過設置<marker>元素的markerUnits屬性的值為strokeWidth來實現的。實際上這是markerUnits屬性的默認值。代碼如下:
  1. <marker id="markerSquare" markerWidth="7" markerHeight="7" refX="4" refY="4"
  2.     orient="auto" markerUnits="strokeWidth">
  3.     <rect x="1" y="1" width="5" height="5" style="stroke: none; fill:#000000;"/>
  4. </marker>     
復制代碼
  如果不想標記的大小自動匹配路徑的描邊寬度,可以設置markerUnits的值為userSpaceOnUse。這樣在使用標記的時候,標記將會保持它們原來的大小。

  本文版權屬于jQuery之家,轉載請注明出處:http://www.htmleaf.com/ziliaoku/ ... g/201506061983.html


【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

由于實際運行環境是在瀏覽器中,因此性能還取決于JavaScript解釋器的效率,指定的FPS幀速在低性能解釋器中可能不會達到,所以這部分不是開發者能夠決定的,開發者能作的是盡可能通
本文將使用HTML5提供的VideoAPI做一個自定義的視頻播放器,需要用到HTML5提供的video標簽、以及HTML5提供的對JavascriptAPI的擴展。,HTML5中國,中國最大的HTML5中文門戶。
隨著 Hybrid 應用的豐富,HTML5 工程師們已經不滿足于把桌面端體驗簡單移植到移動端,他們覬覦移動原生應用人性化的操作體驗,特別是原生應用與生俱來的豐富的手勢系統。HTML5 沒有提
你想要在自己網站上分享一個產品,或者是一個作品集,又或者僅僅只是一個靈感。在你發布到網上之前,你想讓它看起來有吸引力,專業,或者至少得看起來像那么回事。那么你接下
H5廣告,包括H5廣告的設計流程,究竟有什么講究,和階段。為了能幫助更多的人了解H5廣告,我專門做了一個講義。同時,也讓我意外的收到了非常好反饋和認!這是對我的極大鼓勵!我的
本文主要內容有:框架與組件、構建生態、開發技巧與調試、html、css與重構、native/hybrid/桌面開發、前端/H5優化、全棧/全端開發、研究實驗、數據分析與監控、其它軟技能、前端技術網
主站蜘蛛池模板: 日日日操 | www.天天干.com | 国产真实精品久久二三区 | 毛片com| 成人在线观看免费视频 | 日韩av一区二区在线观看 | wwwxxx国产| 在线播放精品视频 | 免费黄色片在线观看 | 成人性生交大片免费看中文带字幕 | 色爱综合网 | 91tv在线观看 | 国产精品九九 | 国产一级片在线观看视频 | 日韩电影在线 | 99免费精品视频 | 精品日韩一区 | 久久伊人操 | 久久蜜桃资源一区二区老牛 | 在线免费观看毛片 | 一区在线观看 | 久久免费国产 | 天啪 | 三区四区在线观看 | 亚洲欧美激情国产综合久久久 | 一级毛片色一级 | 久久精品二区亚洲w码 | 国产黄色大片在线免费观看 | 日韩av一区二区在线观看 | 日本黄色的视频 | a毛片视频网站 | 日本人和亚洲人zjzjhd | 国产精品国产精品国产专区不片 | 伊人久麻豆社区 | 午夜影院在线观看 | 国产精品久久久久久久久久久免费看 | 日本一道本视频 | 免费av在线 | 久久精品国产清自在天天线 | 中文字幕一区二区三区四区五区 | 精品一区二区三区免费视频 |