Toxa26
@Toxa26
Студент. Люблю верстать сайты.

Как решить проблему?

Хочу сделать возможность перемещать блок с помощью кнопок, но кнопка вниз почему-то не работает, хотя все остальные отрабатывают верно, в чем может быть проблема? CodePen
Весь код прикрепил ниже
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
    
    <link rel="stylesheet" href="style.css">
</head>
<body>
    
    <input id="top" type="button" value="TOP">
    <input id="bottom" type="button" value="BOTTOM">
    <input id="left" type="button" value="LEFT">
    <input id="right" type="button" value="RIGHT">
    
    <div class="mainBlock">
        <div id="moveBlock"></div>
    </div>
    
    <script src="main.js"></script>
</body>
</html>

#top,
#bottom,
#right,
#left {
    width: 100px;
    height: 30px;
}
.mainBlock {
    height: 500px;
    width: 1000px;
    background: #000;
    position: relative;
    margin: 0 auto;
    margin-top: 10px;
}
#moveBlock {
    height: 30px;
    width: 30px;
    top:0px;
    left:0px;
    background-color: green;
    position: absolute;
    border: 1px solid red;
}

var topPos = 0;
var leftPos = 0;
var top = document.getElementById("top");
var bottom = document.getElementById("bottom");
var left = document.getElementById("left");
var right = document.getElementById("right");
var moveBlock = document.getElementById("moveBlock");


function moveTop() {
    topPos -= 15;
    moveBlock.style.top = topPos + "px";
}

function moveLeft() {
    topPos += 15;
    leftPos -= 15;
    moveBlock.style.left = leftPos + "px";
}

function moveBottom() {
    topPos += 15;
    moveBlock.style.top = topPos + "px";
}
function moveRight() {
    leftPos += 15;
    topPos += 15;
    moveBlock.style.left = leftPos + "px";
}

left.onclick = moveLeft;
right.onclick = moveRight;
bottom.onclick = moveBottom; 
top.onclick = moveTop;
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
wapster92
@wapster92 Куратор тега CSS
moveBlock.style.top = test + "px";
в вашем примере нет переменной test, попробуйте вставить topPos
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
origami1024
@origami1024
went out for a night walk
Слово top зарезервированное слово в js, его нельзя использовать для имен переменных.

Вот список всех зарезервированных слов:
https://www.w3schools.com/js/js_reserved.asp

Если быть более точным, то это имя объекта в глобальном классе window, которое вынесено в доступ по слову top.
Ответ написан
Комментировать
@KononovD
https://codepen.io/Kononov_D/pen/GeWwNg

так и не понял в чем была проблема у вас)
но вот вам ссылка на codePen, где все работает)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект