在这里查看 fiddle :http://jsfiddle.net/mYdm9/4/
在我的电脑上,做
ctx.lineWidth=20;
ctx.setLineDash([20,30]);
ctx.lineDashOffset=10;
ctx.beginPath();
ctx.moveTo(150,150);
ctx.lineTo(240,240);
ctx.lineTo(180,40);
ctx.stroke();
ctx.closePath()
给出第一组线,带有所需的破折号/偏移量
现在用
ctx.setLineDash([0,0]);
ctx.lineDashOffset=0
在下一批命令中:
ctx.beginPath();
//resets line dash... except on iOS Safari it seems...
ctx.setLineDash([0,0]);
ctx.lineDashOffset=0;
ctx.moveTo(0,300);
ctx.lineTo(0,250);
ctx.lineTo(100,400);
ctx.lineTo(200,300);
ctx.stroke();
ctx.closePath()
在第一组行之后似乎重置了任何破折号属性。再次获取实线
在运行 Safari 的 iPad2 上……它似乎完全被忽略了,线条保持虚线。为什么是这样?另外,是否有其他方法可以正确重置破折号...? (最好是跨浏览器/操作系统)
谢谢
最佳答案
使用这个表示法,它将在所有支持 setLineDash 的浏览器中工作
ctx.setLineDash([]);
关于javascript - Canvas setLineDash 和 lineDashOffset 不在 iOS/Safari 中重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21839111/