javascript - 无法在 JavaScript 中为元素设置原点
问题描述
我正在用 js 制作一个简单的游戏,它由一个网格和一些单元格组成
这就是它目前的样子,而且效果很好。问题是,在进行此操作时,我将边距设置为 0,但我想将画布移动到中心。为此,我从这个函数中获得了利润
var test = document.querySelector('.test');
var left_margin = window.getComputedStyle(test).getPropertyValue("margin-
left "); // returns margin e.g. '655px'
left_margin = left_margin.match(/\d+/);
然后我对整个事物进行了一些更改以解决此偏移量,但由于某种原因,当我尝试将偏移量添加到 x 轴时,它返回 NaN。为了确保没有问题,我对这个值执行了一些基本的数学运算并且它们起作用了。有人能告诉我这是怎么回事吗?而且,是否有一种简单的方法可以重新定义元素的原点(在我的情况下是画布),以避免这种麻烦?
编辑:我不明白这一点。当我简单地做 var a = blockWidth + 0;游戏没有开始然后做 console.log(a) 这也返回 NaN。我得到**(未捕获的TypeError:无法设置未定义的属性'strokeStyle')**
function grid(){
var a = blockWidth + left_margin;
var b = blockHeight;
while (a != widthWin){
drawLine(a, 0, a, heightWin, 1, 'gray');
a += blockWidth;
}
while (b != heightWin){
drawLine(left_margin, b, widthWin+left_margin, b, 1, 'gray');
b += blockHeight;
}
}
解决方案
你得到什么
left_margin = left_margin.match(/\d+/);
是一个数组["655"]
,而不是您假设的 int。
因此,在使用它进行任何数学运算之前,您需要访问它的第一个元素并将其解析为一个数字:
left_margin = parseInt(left_margin.match(/\d+/)[0]);
推荐阅读
- sql - 将许多大文件从 R 复制到新的 SQL 数据库
- prolog - Prolog 术语:id(X,X)。事实还是规则?
- excel - 使用具有两个条件的 COUNTIFS?
- php - 代码在 PHP 7.3 中无法正常运行。修复与 PHP 7.1 和 7.2 向后兼容的最佳方法,count() 错误
- reactjs - React-admin 表显示两次
- javascript - TypeError:解析器不是函数
- docker - Kubernetes 集群“cni 配置未初始化”
- pandas - GroupBy 聚合基于条件和使用 pandas 的年度总和
- charts - QML:ChartView 系列的自定义可拖动点委托
- php - 编写一个基本的 php 脚本