如何在jQuery中获取路径的X和Y坐标,然后更改它们?我希望能够在点击时为我的图标设置动画。我知道还有其他方法,但想使用jQuery
<svg class="path" style="height: 32px; width: 32px;">
<g style="stroke: #ff6633; stroke-width: 4px;" fill="none" stroke-linecap="round">
<path d="M2 4 L30 4" />
<path d="M2 16 L30 16" />
<path d="M2 28 L30 28" />
</g>
</svg>
&#13;
答案 0 :(得分:0)
使用带有JQuery的path
将newPath
属性更改为.attr("d", newPath);
。
以下是每个单一路径附加click
事件的示例。
您可以使用任何字符串操作方法来更改路径中的属性d
。
// click event on a path element of the SVG
$('path').click(function() {
var path = $(this).attr("d");
// just as an example, substitute the first two characters in d ("M2") with "M20"
path = "M20" + path.slice(2); // here you manipulate the path as a string
console.log(path); // check new path in the console
$(this).attr("d", path);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg class="path" style="height: 32px; width: 32px;">
<g style="stroke: #ff6633; stroke-width: 4px;" fill="none" stroke-linecap="round">
<path d="M2 4 L30 4" />
<path d="M2 16 L30 16" />
<path d="M2 28 L30 28" />
</g>
</svg>
此示例显示如何使svg
可点击并选择svg
中的所有子路径。如果要选择特定路径,可以向其添加ID。
// select the svg element
$('svg').click(function() {
$(this).find("path").each(function(index) {
var d = $(this).attr("d");
d = "M" + 10 * index + d.slice(2); // manipulate path
$(this).attr("d", d);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg class="path" style="height: 32px; width: 32px;">
<g style="stroke: #ff6633; stroke-width: 4px;" fill="none" stroke-linecap="round">
<path d="M2 4 L30 4" />
<path d="M2 16 L30 16" />
<path d="M2 28 L30 28" />
</g>
</svg>