这是我的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;
头部和身体部位。
答案 0 :(得分:2)
offset()
是一个包含两个属性top
和left
的对象。
使用offset().top
获取y位置
var headPos_x = $('.head').offset().left;
var headPos_y = $('.head').offset().top;
alert("x:" + headPos_x + ", y:" + headPos_y);