Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.10.2022, 16:53
Новичок на форуме
Отправить личное сообщение для chegevika Посмотреть профиль Найти все сообщения от chegevika
 
Регистрация: 29.10.2022
Сообщений: 1

Canvas. Как остановить анимацию кнопкой?
Всем привет. Я начинающий) Как остановить движение анимации в канвас? создала квадрат, который при нажатии на кнопку движется вперед-назад по канвасу. Другая кнопка должна его остановить. Мои варианты были такие:

const canvas = document.querySelector('#cl');
const ctx = canvas.getContext('2d');


let n=2; //скорость
let x = 10;
let y = 10;


function draw(x,y) {
ctx.fillStyle = 'green';
ctx.fillRect(x,y,50,50);
}

draw(x,y); // чтоб квадрат был всегда нарисован на экране


let move_sqare = document.querySelector("#startBtn");
move_sqare.addEventListener("click", function move () {

ctx.clearRect(0,0, canvas.width, canvas.height)
draw(x,y);
x += n;
if (x > canvas.width-50 || x < 0) {
n = -n
}

requestAnimationFrame(move)
});


let stop_sqare = document.querySelector("#stopBtn");
stop_sqare.addEventListener("click", function stopmove () {
ctx.clearRect(0,0, canvas.width, canvas.height)
draw(x,y);
n = 0;
x += n;

});

Элемент останавливается, но больше кнопки не работают =(( Еще пыталась с cancelAnimationFrame но что-то не вышло . Помогите , пожалуйста, кто разбирается.
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2022, 17:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

chegevika,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2022, 17:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

chegevika,
кнопка стоп должна останавливать requestAnimationFrame
читать про cancelAnimationFrame и тут Использование requestAnimationFrame
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт. как его остановить .какие команды и как разобратся в нём sucheninov1970 jQuery 2 11.02.2023 14:17
Как можно реализовать анимацию волны по нижней границы инпута? solidussnake Элементы интерфейса 1 30.03.2021 16:38
Как сделать анимацию кривой в d3.js? gsdev99 Элементы интерфейса 0 03.02.2020 17:27
Как правильно реализовать следующую анимацию на React? gsdev99 Элементы интерфейса 0 23.03.2019 08:50
Как записать видео из canvas? Dimaz Общие вопросы Javascript 6 10.09.2014 21:39