.offset()并检查jQuery中的位置

时间:2015-01-16 19:01:06

标签: javascript jquery html css

这是我的HTML代码:

<div class="snake">
        <div class="body"></div>
    </div>

在脚本中,我有一个创建正文部分的函数,并将它们附加到.snake

它看起来像这样:

$('.btn1').click(function() {
    length++;
    $('<div></div>').addClass('body').appendTo('.snake').css('left', xPos * length * 1.2 + '%');   
});

然后另一个函数删除最后一个正文部分,创建一个新部分,将它放在顶部并给它.head类。

$('.snake').children().last().remove();
$('<div></div>').addClass('body').prependTo('.snake').css('top', 0 + '%').css('left', xPos * blocks_moved * 1.2 + '%');
$('.snake').children().removeClass('head');
$('.snake').children().first().addClass('head');

因此,每次调用此函数时,新<div>都会被赋予.head类。

var headPos = $('.head').offset();
            alert(headPos);

在上面的两行代码中,我尝试提醒.head的位置,但我使用了.offset(),因此它应根据不在父元素上的文档提醒坐标。这两行也在上面的功能中。它会提醒类似[object Object]的内容。为什么这不起作用?我需要这个变量,所以我可以将.snake位置设置为.head位置。

我用$('.snake').position(headPos);尝试了这个,但我认为.position()函数无法设置位置。执行此操作的任何其他方式以及对.offset()的一些帮助都会很棒。我是编程新手,所以任何建议都会有所帮助。 :)

P.S。

我又忘记了一件事。怎么样的CSS?我应该使用哪些位置值?我使用了position: absolute;头部和身体部位。

1 个答案:

答案 0 :(得分:2)

offset()是一个包含两个属性topleft的对象。

使用offset().top获取y位置

var headPos_x = $('.head').offset().left;
var headPos_y = $('.head').offset().top;
alert("x:" + headPos_x + ", y:" + headPos_y);