由於某些原因,我正在嘗試繪製的線條未顯示出來。從的console.log語句的輸出如下:HTML5不能正確繪製線條,但會繪製矩形
(39259)(0375)
(39 -157)(0,-249)
(39 -233)(0,1458)
(0,-157)(39718)
(0,1198)(39,1337)
(39,-84)(0164)
(39 -140)(0496)
(39, - 157)(0,-249)
(39,-11)(0378)
(39 -157)(0378)
(39 -233)(0,1300)
通過記錄ctxt,我確認這不是問題。畫布的造型如下:
width: 35px;
height:1879px;
left: 415px;
position: absolute;
margin-top: 4.4%;
我已經做了一個繪製矩形的測試,似乎工作。
for (var a = 0; a < arrows.length; a++) {
var ctxt,
ctxtX = 0,
tgtX = 0;
tgtGroup = groups[arrows[a].getAttribute('data-gID') - 1],
categoryTxt = tgtGroup.parentNode.firstChild.innerHTML,
arrowCatTxt = arrows[a].parentNode.parentNode.firstChild.innerHTML;
if(categoryTxt == 'Engineering' && arrowCatTxt == 'Administration') {
ctxt = canvases[0].getContext("2d");
tgtX = canvases[0].offsetWidth;
} else if(categoryTxt == 'Engineering' && arrowCatTxt == 'Fabrication') {
ctxt = canvases[1].getContext("2d");
tgtX = canvases[0].offsetWidth;
} else if(categoryTxt == 'Administration' && arrowCatTxt == 'Engineering') {
ctxt = canvases[0].getContext("2d");
ctxtX = canvases[0].offsetWidth;
} else {
ctxt = canvases[1].getContext("2d");
ctxtX = canvases[1].offsetWidth;
}
console.log('('+ctxtX +','+ (arrows[a].offsetTop - canvases[0].offsetTop) + ') (' + tgtX + ',' + (tgtGroup.offsetTop - canvases[0].offsetTop) + ')');
ctxt.beginPath();
ctxt.strokeStyle = "#000";
ctxt.lineWidth = 10;
ctxt.moveTo(ctxtX, Math.abs(arrows[a].offsetTop - canvases[0].offsetTop));
ctxt.lineTo(tgtX, Math.abs(tgtGroup.offsetTop - canvases[0].offsetTop));
ctxt.stroke();
}
謝謝你的幫忙!
你能在http://jsfiddle.net上做一個完整的例子嗎?我認爲你目前的例子不足以診斷你的問題。 – apsillers
http://stackoverflow.com/help/how-to-ask – DevlshOne
您是否收到任何javascript錯誤? –