javascript - jQuery SVG Line stroke-linejoin(编辑 : SVG markers)

标签 javascript jquery svg

我在页面上的两个点之间绘制了一个箭头。每次调用时,箭头都会被清除并用不同的点重新绘制。现在线条绘制正确,但末尾没有箭头。我正在使用 jQuery SVG plugin

var svg = $('#board').svg('get');
svg.clear();
var startX = fromCol*sideLen + sideLen/2;
var startY = fromRow*sideLen + sideLen/2;
var endX = toCol*sideLen + sideLen/2;
var endY = toRow*sideLen + sideLen/2;
svg.line(startX, startY, endX, endY, {
    strokeWidth: 5
    , stroke: 'yellow'
    , strokeLineCap: 'round'
    , strokeLineJoin: 'miter'
});

驼峰式变量设置为正确的 CSS 属性,我仔细检查了这一点。此代码在 DOM 中的示例输出是

`<line x1="375" y1="325" x2="325" y2="275" stroke-width="5" stroke="yellow" stroke-linecap="round" stroke-linejoin="miter"></line>`

我被难住了。感谢您的帮助!

最佳答案

想通了。我在设置中定义了这个:

$('#board').svg();
var svg = $('#board').svg('get');
// Adds a marker to the svg defs element
var defs = svg.defs();
var marker = svg.marker(defs, 'arrow', 3, 2, 5, 5, 'auto');
// Define the shape of the marker
svg.polyline(marker, [[0,0], [4,2], [0,4], [1,2]], {
    "fill"  : "yellow"
});

并在画线时调用它,与之前类似,但使用新设置和 id。

var svg = $('#board').svg('get');
var g = svg.group({stroke: 'yellow', strokeWidth: 5});
svg.line(g, startX, startY, endX, endY, {
    "id" : "line"
    , "strokeLineCap" : "round"
    , "marker-end"  : "url(#arrow)"
});

关于javascript - jQuery SVG Line stroke-linejoin(编辑 : SVG markers),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334979/

相关文章:

javascript - JQuery语法困惑

Jquery 每个 <li> 应用鼠标悬停背景

javascript - jQuery 菜单应保持打开状态

javascript - 如何平滑徒手绘制的 SVG 路径?

javascript - 为什么我设置的 d3 笔画样式在调试器中显示为空字符串,但在屏幕上显示为红色?如何访问笔触样式?

javascript - 尽管已经使用 npm 安装了 js 库,但我是否需要在 lib 或 vendor 文件夹中保留 js 库的副本?

javascript - 如何避免对每种类型调用数据库?

javascript - 变换后的矩形坐标

javascript - 使用 javascript 检测 CSP 违规

jquery - json 到二维数组的转换器