如何使用Snap.SVG居中一组SVG形状;Javascript
How to center a group of SVG shapes with Snap.SVG & Javascript
我正在尝试制作一个矩形圆圈,在SVG中居中(垂直和水平)
我的代码如下:
http://jsfiddle.net/JamThom/7G2pC/ var a = Snap(250,250);
for (var i=0;i<90;i++) {
var sqz = a.rect(0, 0, 14, 3)
.attr({
fill: '#666',
transform: "r"+i*4+",75,0"
})
.data("i",i);
}
要做到这一点,我认为我需要首先选择并分组所有的矩形,但由于我是在for循环中创建它们,它们没有单独的名称,我不知道如何定位它们
感谢任何帮助很抱歉我的代码很随意——这是我第一次使用snap.svg
您可以使用translate
:
transform: "t50,125 r"+i*4+",75,0"
JSFiddle
你的SVG是250x250,半径是75,所以t
的坐标是250 / 2 - 75 = 50
和250 / 2 = 125
。
就像helderdarocha的稍微变化一样,您可以将它们添加到组中并进行翻译,就像这里的小提琴
var skillometer = Snap(size, size);
var g = skillometer.g();
g.attr({ transform: 't' + x + ',' + y });
for (var i = 0; i < 90; i++) {
var sqz = skillometer.rect(0, 0, 14, 3)
.attr({
fill: '#666',
transform: "r" + i * 4 + "," + radius + ",0"
}).data("i", i);
g.append( sqz );
}
// you can now animate or move the whole group as one.
g.animate({ transform: 't'+x+','+y+'s1.65' }, 5000 );
没有太大的区别,除非你想移动或动画整个批次,在这种情况下,这个组方法可能是更可取的,因为你可以在未来移动组的变换只是对group元素(包括它只是为了突出显示)。
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 捕捉svg拖动一组集合
- 如何将不断变化的数据源绑定到一组svg
- 从JS中的一组元素在SVG中创建一个多边形
- 如何使用Snap.SVG居中一组SVG形状;Javascript