Javascript 为什么位置()的左值会变得异常高?

Javascript 为什么位置()的左值会变得异常高?,javascript,jquery,html,css,game-physics,Javascript,Jquery,Html,Css,Game Physics,相关的代码是 this.place = function () { var headElem = game.snake.links[0]; this.bub.css({ left: headElem.pos.x * game.blockWidth + $('#snake-board-column').css('padding-left'), bottom: headElem.pos.y * game.

相关的代码是

    this.place = function ()
    {
        var headElem = game.snake.links[0];
        this.bub.css({
            left: headElem.pos.x * game.blockWidth + $('#snake-board-column').css('padding-left'),
            bottom: headElem.pos.y * game.blockWidth
        });
        console.log(this.bub.position()); // TEST
    }
如果您想知道为什么我不简单地使用CSS,那么它的目的是相对于SVG rect元素创建一个单词气泡的位置,这是因为由于游戏逻辑,有很多元素的交换/替换。在页面加载和窗口调整大小时调用上述函数。我觉得奇怪的是我的测试结果

console.log(this.bub.position()); // TEST
在调整窗口大小时,有时会为left生成非常高的值,因此“气泡”一词不在屏幕上。我只是调整了窗口的大小,然后

Objectleft: 308.5top: 0__proto__: Object
game.js:290 Objectleft: 23515top: 0__proto__: Object
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 23515}
game.js:290 Object {top: 0, left: 169169}
game.js:290 Object {top: 0, left: 169169}
game.js:290 Object {top: 0, left: 169169}
您可以看到左侧的第一个值是308.5正常值,预期值,后续值不正常。你可以看到它的作用和完整的JS。知道是什么导致了这些胡说八道吗

最奇怪的是,我测试了个人的价值观


headElem.pos.x,game.blockWidth和$'snake-board-column'。css'padding-left',它们看起来都很正常

您可以连接字符串而不是添加整数

headElem.pos.x、game.blockWidth和$'snake-board-column'.css'padding-left'的类型是什么

例如,我在控制台中尝试了以下操作:

var paddingLeft = $('#snake-board-column').css('padding-left');
>> typeof paddingLeft
>> 'string'
在对值求和之前尝试parseInt。

typeof headElem.pos.x=number game.js:301 typeof game.blockWidth=number game.js:302$'snake-board-column'.css'padding-left'=string