Показать сообщение отдельно
  #2 (permalink)  
Старый 28.01.2021, 09:59
Аспирант
Отправить личное сообщение для RX200 Посмотреть профиль Найти все сообщения от RX200
 
Регистрация: 06.02.2011
Сообщений: 54

Примерно так.
let down = (e, f) => {
	e.preventDefault();
	let onMouseUp = e => {
		document.removeEventListener('mouseup', onMouseUp);
		document.removeEventListener('mousemove', f);
	};
	document.addEventListener('mousemove', f);
	document.addEventListener('mouseup', onMouseUp);
};
elm.onmousedown = e => {
	down(e, e => {
		elm_x += e.movementX;
		elm_y += e.movementY;
		if(elm_x > max_x)elm_x = max_x;// Ограничения right примерно так, ещё три штуки допишите для left, top, bottom.
		//вводим координаты элементу. Например как ниже.
		elm.style.left = elm_x+'px';
		elm.style.top = elm_y+'px';
	});
};

Ещё чтоб корабли ровно вставали допишите, при отпускании, деление по модулю на шаг сетки. примерно так elm_x -= elm_x % step;

Последний раз редактировалось RX200, 28.01.2021 в 10:05.
Ответить с цитированием