本案例注意事項(xiàng):
1、當(dāng)你拖動(dòng)箭頭時(shí) canvas里面線條繪制自動(dòng)重新計(jì)算點(diǎn)。
2、canvas沒有畫虛線的api,因?yàn)閷?duì)api不是很熟悉,所以就不獻(xiàn)丑了,在網(wǎng)上找的。
3、箭頭出來后 點(diǎn)擊畫布里面的任意點(diǎn) 箭頭將延伸到該處,至于具體的應(yīng)用 修改canvas的lineTo屬性就能實(shí)現(xiàn)了。
4、具體的代碼解釋我寫的比較清楚,修改箭頭樣式只需寫過lineTo即可,非常簡單。
效果如下:

代碼如下:
<!--程序說明:
作者:xue51
描述:該程序主要是通過exchange的支持在IE下面實(shí)現(xiàn)canvas畫帶箭頭的虛線功能,常用于圖形化工作流的設(shè)計(jì)當(dāng)中。
雖然在IE下面可以用vml實(shí)現(xiàn),但是這個(gè)就是用來取代vml的!!!!!HTML5都來了趕緊消滅老IE
注意事項(xiàng): 1, 該程序是在老外的canvas畫虛線的基礎(chǔ)上做了改進(jìn);
2, exchange需要2個(gè)額外的JS文件指出。
3,使用的時(shí)候在畫布上隨意點(diǎn)點(diǎn)就就能改變箭頭的方向,至于更使用的功能需要您來親自寫寫。
-->
<!DOCTYPE HTML>
<html lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>HTML Canvas Dotted Lines</title>
<style type="text/css" media="screen">
body { background:#ddd; text-align:center; }
canvas { margin:2em auto; display:block; border:1px solid #666; }
label { padding-right:2em }
</style>
<script type="text/javascript" src="excanvas.js" ></script>
<script type="text/javascript" src="jCanvaScript.1.5.15.min.js" ></script>
</head>
<body>
<!--這個(gè)地方需要注意,在IE下面經(jīng)過轉(zhuǎn)換如果不在這里設(shè)置canvas的高和寬就會(huì)造成畫布很小-->
<canvas width="800" height="600"></canvas>
<p>
<label>Line Width: <input id="width" value="2" size="1"></label>
<label>Dashes/Gaps: <input id="dashes" value="10 20" size="15"></label>
<label>Line Cap: <select id="linecap"><option>butt</option><option selected>round</option><option>square</option></select></label>
</p>
<!--這個(gè)是老外寫的用canvas畫虛線的方法,直接使用-->
<script type="text/javascript" charset="utf-8">
if (window.CanvasRenderingContext2D && CanvasRenderingContext2D.prototype.lineTo){
CanvasRenderingContext2D.prototype.dashedLine = function(x,y,x2,y2,dashArray){
if (!dashArray) dashArray=[10,5];
var dashCount = dashArray.length;
this.moveTo(x, y);
var dx = (x2-x), dy = (y2-y);
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選