Есть ли способ перемещать divs по массиву?

0

Вопрос

самоучитель javascript Я хотел создать меню, похожее на Netflix, где при прокрутке вправо или влево вы можете просматривать шоу/фильмы, однако это будет со стрелками влево и вправо, то есть, если я двинусь вправо, блок2 будет в положении блок1, блок3 в блоке 2 и т. Д

Я думал, что мог бы назначить каждому блоку позицию в массиве: var MenuBar = [блок1, блок2, блок3, блок4]; затем выполните итерацию по массиву

for(var i=0; i < menuBar.length(); i++){
switch (e.key) {
            case 'ArrowLeft':
                i--;
                GoThroughMenu();
                break;
            case 'ArrowRight':
                i++;
                GoThroughMenu();
                break;
}

и GoThroughMenu() будет перемещать блоки

block1.style.left = menuBar[i].style.left + 'px';
block1.style.top = menuBar[i].style.top + 'px';

Прямо сейчас ничего не движется, есть ли ошибки в том, как я это делаю?

html javascript
2021-11-24 04:25:23
2

Лучший ответ

2

left и top свойства css работают только с не-position: static значение (которое является значением по умолчанию position значение всех элементов).

Попробуйте дать элементам меню position: relative;.

2021-11-24 04:29:17
1

Просто добавьте position: relative; в #коробку. это будет работать нормально.

Проверьте здесь рабочий пример https://jsfiddle.net/milytulip/x52goy3s/2/

#box{
    width: 1000px;
    height: 200px;
    background-color: black;
    position: relative;
}
2021-11-24 04:45:07

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................