Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery将转换附加到现有转换_Jquery_Css - Fatal编程技术网

使用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)');