簡體   English   中英

如何設置div位置依賴於另一個div位置?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM