js 将画布原点改为00 缩放的时候以画布里面的子元素中心点缩放
可以通过以下步骤实现:
-
将画布的原点移动到左上角,即将画布的transform属性设置为translate(-x,-y),其中x和y分别为画布的左上角坐标。
-
计算子元素的中心点坐标,可以通过获取子元素的宽度和高度,再除以2,得到中心点坐标。
-
将子元素的transform-origin属性设置为中心点坐标。
-
缩放画布时,只需要设置画布的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 著作权归作者所有。请勿转载和采集!