@maksymNejmet

Почему моя анимация не работает?

У меня задача анимации такова:ракета должна перемещатся в каждую милисекунду в пределах случайного количества px по top и left
html(ничего особенного только изображение)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
    <script type="module" src="index.js"></script>
</head>
<body>
    <img src="https://icons.iconarchive.com/icons/bokehlicia/captiva/256/rocket-icon.png" class="favicon" alt="">
</body>
</html>


CSS(почему-то не хочет меняться через js переменная --main-up)
:root{
    --main-up:20px
}

.favicon{
    width: 50px;
    height: 50px;
    position: relative;
    top: 200px;
    right: -200px;
}

@keyframes animation{
    0%{
        top:var(--main-up);
        left: var(--main-up);
    }
    20%{
        top: var(--main-up);
    }
}
    .favicon:hover{
        animation: animation infinite ease alternate infinite;
    }


Js:
// Получаем случайное число
let random=Math.floor(Math.random()*5)
// Изображение
let r=document.querySelector('.favicon')
// Задаем для перемененной css значение
r.style.setProperty("--main-up",random+'px')
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
black1277
@black1277
Вольный стрелок
Потому что вы ищете свойство "--main-up" в селекторе класса .favicon, а определили его в :root
Попробуйте так
let root =  document.documentElement;
root.style.setProperty("--main-up", random+'px');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы