[英]How to set a div position to depend on another div position?
這是代碼的html部分:
<div class="snake">
<div class="body"></div>
</div>
下面的函數采用最后一個塊,將其刪除並創建另一個塊以將其置於頂部。
//The snake turns right
var turnRight = function() {
blocks_moved++;
$('.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');
...more code
使用下面的代碼,我試圖將蛇位置eqal設置為頭部的位置,因此每當一個新的塊成為頭部時,蛇就會移動一個塊。
//Set the snake position equal to head's position
var headPos = $('.snake').children().first().position();
$('.snake').position(headPos);
if (blocks_moved === length) {
blocks_moved === 0;
}
}
當我調用函數turnRight();
頭部和身體移動,但蛇留在原地。 我也試過.css()
方法,但我沒有成功。 還有其他方法嗎?
我用.offset()和定位解決了這個問題。 這是一個實例: https : //jsfiddle.net/dusth7gc/3/
用.offset()和定位解決了這個問題。
var turnRight = function() {
$('.body').css('background-color', 'gray');
headPos_x = ($('.head').offset().left / $(window).width() * 100);
headPos_y = ($('.head').offset().top / $(window).height() * 100);
$('<div></div>').addClass('body').prependTo('.snake').css('top', headPos_y + '%').css('left', headPos_x + helper_width * 1.2 + '%');
$('.snake').children().last().remove();
$('.snake').children().removeClass('head');
$('.snake').children().first().addClass('head');
$('.helper').css('top', $('.head').offset().top + 'px').css('left',$('.head').offset().left + 'px');
if(collision($('.helper'), $('.meal')) === true) {
$('.meal').remove();
$('<div></div>').addClass('body').css('background-color', 'transparent').appendTo('.snake');
foodCreate();
}
}
這是一個實例: https : //jsfiddle.net/dusth7gc/3/ 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.