CSS定位问题

时间:2014-03-24 00:42:10

标签: javascript jquery html css melonjs

我正在使用melonJS创建游戏。我想在NPC上动态定位对话框。

在全屏幕中,它看起来很好。

enter image description here

当缩小视口时,定位保持绝对,因此看起来很糟糕。但如果我没有绝对定位,我将无法将其放置在相对于NPC坐标的位置:

$("#dialogBox").css({top: game.data.currentNPC_y+50, left: game.data.currentNPC_x-50, position:'absolute'});

enter image description here

有什么方法吗?


修改

当我使用以下代码时,代码不会像上面提到的那样扩展,但至少它仍然靠近NPC和画布:

        $("#dialogBox").css({
            top: game.data.currNPC_y+50, 
            left: game.data.currNPC_x-50, 
            position:'absolute'
        }); 

enter image description here

当我使用您建议的代码时,它出现在画布外:

        $("#dialogBox").css({
            position : "absolute",
            left     : (game.data.currentNPC_x - 50) * me.sys.scale.x,
            top      : (game.data.currentNPC_y - 500) * me.sys.scale.y
        });

enter image description here

1 个答案:

答案 0 :(得分:2)

将DOM绝对左侧缩放me.sys.scale.x,绝对顶部缩放me.sys.scale.y

$("#dialogBox").css({
    "position" : "absolute",
    "left"     : (game.data.currentNPC_x - 50) * me.sys.scale.x,
    "top"      : (game.data.currentNPC_y + 50) * me.sys.scale.y
});

您也可以缩放元素的宽度和高度,以便更好地集成。

最后,您应该听取WINDOW_ONRESIZE事件,以便在用户更改窗口大小或移动设备方向等时动态重新缩放元素。