Top.Mail.Ru
","author":{"@type":"Person","name":"mike_tyson_517","url":"https://otvet.mail.ru/profile/mike_tyson_517"},"dateCreated":"2023-04-22T00:05:50+03:00","datePublished":"2023-04-22T00:05:50+03:00","answerCount":6,"upvoteCount":1,"acceptedAnswer":{"@type":"Answer","text":"Для получения текущих стилей другой код\n window.getComputedStyle(sky).left \nПри попытке считать через style. не получишь ничего","dateCreated":"2023-04-22T00:31:28+03:00","datePublished":"2023-04-22T00:31:28+03:00","upvoteCount":1,"author":{"@type":"Person","name":"petr_alekseevich_1","url":"https://otvet.mail.ru/profile/petr_alekseevich_1"},"url":""},"suggestedAnswer":[{"@type":"Answer","text":"Даже не знаю в чем конкретно ошибка, для начала когда ты вызываешь функцию skyMove ты не передаешь в нее аргумент, но жачем то принимаешь его, удали skyX из скобок он тут ни к чему. Потом, переменная skyX у тебя не объявляется, где let? И наконец, если style.left и возвращает что то то возвращает строку, вот что ты пытаешься сделать:\n '593px' - 150 + 'px'","dateCreated":"2023-04-22T09:33:42+03:00","datePublished":"2023-04-22T09:33:42+03:00","upvoteCount":0,"author":{"@type":"Person","name":"dlazder","url":"https://otvet.mail.ru/profile/dlazder"},"url":""},{"@type":"Answer","text":"Возможно, потому что возникает непонятная ситуация.\nsky.style\n .left = '593px' - 150 + 'px'","dateCreated":"2023-04-22T00:27:49+03:00","datePublished":"2023-04-22T00:27:49+03:00","upvoteCount":0,"author":{"@type":"Person","name":"frantsisk_1_1","url":"https://otvet.mail.ru/profile/frantsisk_1_1"},"url":""},{"@type":"Answer","text":"Для движения div вправо с использованием setInterval, вы можете создать следующий код на JavaScript:\n Move Div
\nВ этом примере создается div с идентификатором \"movingDiv\". С помощью setInterval, мы перемещаем div вправо на 10 пикселей каждую секунду (1000 мс). Вы можете изменить значение переменной moveBy для изменения скорости движения div.\nМой канал по Web программированию","dateCreated":"2023-04-22T00:13:05+03:00","datePublished":"2023-04-22T00:13:05+03:00","upvoteCount":0,"author":{"@type":"Person","name":"user_72847397","url":"https://otvet.mail.ru/profile/user_72847397"},"url":""}]}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WebPage","@id":"https://otvet.mail.ru/space/programming/","name":"Программирование"}},{"@type":"ListItem","position":2,"item":{"@type":"WebPage","name":"Помогите с кодом js плиз"}}]}]}
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Помогите с кодом js плиз

div должен двигаться вправо за счет setInterval каждые 1000 мс. Я в css задал свойство left равное 593px, но когда я перехожу в js оно становится равно 0 и при выполнении функции она улетает на -150x Почему????

123456789101112131415161718
 <div id="sky"></div> 
<style type="text/css"> 
  #sky{ 
    background-color: red; 
    width: 150px; 
    height: 50px; 
    position: absolute; 
    left: 593px; 
  } 
</style> 
<script> 
  var sky = document.querySelector('#sky') 
  function skyMove(skyX) {  
    skyX = sky.style.left; 
    sky.style.left = skyX - 150 + 'px' 
  } 
    setInterval(skyMove, 1000)
</script> 
По дате
По рейтингу
Аватар пользователя
Оракул

Для получения текущих стилей другой код

1
 window.getComputedStyle(sky).left 

При попытке считать через style. не получишь ничего

Аватар пользователя
Мудрец

Даже не знаю в чем конкретно ошибка, для начала когда ты вызываешь функцию skyMove ты не передаешь в нее аргумент, но жачем то принимаешь его, удали skyX из скобок он тут ни к чему. Потом, переменная skyX у тебя не объявляется, где let? И наконец, если style.left и возвращает что то то возвращает строку, вот что ты пытаешься сделать:

1
 '593px' - 150 + 'px' 
Аватар пользователя
Просветленный

Возможно, потому что возникает непонятная ситуация.
sky.style .left = '593px' - 150 + 'px'

Аватар пользователя
Мастер

Для движения div вправо с использованием setInterval, вы можете создать следующий код на JavaScript:

123456789101112131415161718192021222324252627282930313233
 <!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>Move Div</title> 
    <style> 
        #movingDiv { 
            position: absolute; 
            width: 100px; 
            height: 100px; 
            background-color: red; 
            left: 0; 
        } 
    </style> 
</head> 
<body> 
    <div id="movingDiv"></div> 
 
    <script> 
        const div = document.getElementById('movingDiv'); 
        let position = 0; 
        const moveBy = 10; // Расстояние, на которое div будет двигаться каждую секунду 
 
        setInterval(() => { 
            position += moveBy; 
            div.style.left = position + 'px'; 
        }, 1000); 
    </script> 
</body> 
</html> 
 

В этом примере создается div с идентификатором "movingDiv". С помощью setInterval, мы перемещаем div вправо на 10 пикселей каждую секунду (1000 мс). Вы можете изменить значение переменной moveBy для изменения скорости движения div.

Мой канал по Web программированию