可以通过以下步骤实现:

  1. 将画布的原点移动到左上角,即将画布的transform属性设置为translate(-x,-y),其中x和y分别为画布的左上角坐标。

  2. 计算子元素的中心点坐标,可以通过获取子元素的宽度和高度,再除以2,得到中心点坐标。

  3. 将子元素的transform-origin属性设置为中心点坐标。

  4. 缩放画布时,只需要设置画布的scale属性即可,子元素会自动跟随缩放。

示例代码:

// 获取画布和子元素
var canvas = document.getElementById('canvas');
var child = document.getElementById('child');

// 将画布原点移动到左上角
canvas.style.transform = 'translate(-' + canvas.offsetLeft + 'px,-' + canvas.offsetTop + 'px)';

// 计算子元素中心点坐标
var centerX = child.offsetWidth / 2;
var centerY = child.offsetHeight / 2;

// 设置子元素的transform-origin属性
child.style.transformOrigin = centerX + 'px ' + centerY + 'px';

// 缩放画布
canvas.style.scale = 2; // 缩放为原来的两倍
``

原文地址: https://www.cveoy.top/t/topic/f4Jh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录