相关的代码是
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
}
并且它的目的是使相对于SVG rect
元素的单词气泡位置(如果你想知道我为什么不简单地使用CSS,那是因为有很多交换/替换由于游戏逻辑而产生的元素)。在页面加载和窗口调整大小时调用上述函数。我发现奇怪的是我的测试结果
console.log(this.bub.position()); // TEST
当窗口调整大小时,有时会为left
生成非常高的值,因此屏幕上出现单词bubble。我只是调整了窗口大小并得到了
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}
您可以在其中看到left
的第一个值是308.5
(正常,预期),后续值不合适。您可以在行动here和完整的JS here中看到它。什么导致这个废话????
最奇怪的是我测试了个别值
headElem.pos.x
,game.blockWidth
和$('#snake-board-column').css('padding-left')
这些看似正常。
答案 0 :(得分:0)
您可能会连接字符串而不是添加整数。
headElem.pos.x
,game.blockWidth
和$('#snake-board-column').css('padding-left')
的类型是什么?
例如,我在控制台中尝试了这个:
var paddingLeft = $('#snake-board-column').css('padding-left');
>> typeof paddingLeft
>> 'string'
在对值进行求和之前尝试parseInt()
。