使用jQuery将转换附加到现有转换
我有一个元素使用jQuery将转换附加到现有转换,jquery,css,Jquery,Css,我有一个元素 <g class="annot" transform="translate(317,15)">...</g> 我想把它放大 $('g.annot').css({'transform': 'scale(2)'}) 但这会导致平移位置重置 如何应用缩放并保留平移在下一次变换中仅保留属性: let g = $('g.annot'); g.attr('transform', `${g.attr('transform')} scale(2)`); 或者使用 试试
<g class="annot" transform="translate(317,15)">...</g>
我想把它放大
$('g.annot').css({'transform': 'scale(2)'})
但这会导致平移位置重置
如何应用缩放并保留平移在下一次变换中仅保留属性:
let g = $('g.annot');
g.attr('transform', `${g.attr('transform')} scale(2)`);
或者使用
试试这个:-
var trans = $('g.annot').attr('transform');
$('g.annot').attr(trans+' scale(2)');
在safari 12和FF 68上都试过,但不起作用,让g=$'g.annot'~undefinedis在dom中定义svg?那么:document.querySelector'g.annot'?仍然未定义。。其可识别但不可分配给不同问题的变量。这里没有定义的原因有很多,在加载事件之后运行代码,节点是否在DOM中,等等。上面给出的代码没有显示这一点。
let
g = $('g.annot').get(0),
root = g.ownerSVGElement,
mtr = root.createSVGMatrix(),
t = g.transform.baseVal
;
mtr.a = 2;
mtr.d = 2;
t.appendItem(root.createSVGTransformFromMatrix(mtr))
var trans = $('g.annot').attr('transform');
$('g.annot').attr(trans+' scale(2)');