@microbot

Как исправить дерганье блока при перемещении (JS)?

Недавно начал осваивать JS. Решил посмотреть как происходит перемещение блока с помощью координат перемещения мыши. Код:
<!doctype html>
<html>
<head>
	<link rel='stylesheet' href='console.css'>
</head>
<body>
	<div id='divConsole' onclick="take();"></div>
	<script>
		var x = 0;
		var y = 0;

		function coords() {
			divConsole.innerHTML = 'top: ' + divConsole.offsetTop + '<br>'
			+ 'y: ' + event.clientY + '<br>'
			+ 'left: ' + divConsole.offsetLeft + '<br>'
			+ 'x: ' + event.clientX + '';

			if (x == event.clientX) {
				var moveUp = event.clientY - y;

				divConsole.style.top = (divConsole.offsetTop+moveUp) + 'px';
				y = event.clientY;
			} else {
				var moveRight = event.clientX - x;

				divConsole.style.left = (divConsole.offsetLeft+moveRight) + 'px';
				x = event.clientX;
			}
		}
		function take() {
			var html = document.getElementsByTagName('html')[0];

			if (html.getAttribute('onmousemove')) {
				html.setAttribute('onmousemove', '');
			} else {
				html.setAttribute('onmousemove', 'coords();');
				x = event.clientX;
				y = event.clientY;
			}
		}
	</script>
</body>
</html>


Код CSS:
html, body {
	overflow: hidden;
	margin: 0;
}
#divConsole {
	width: 200px;
	height: 300px;
	background: lightblue;
	overflow: auto;
	padding: 1%;
	position: absolute;
}

В общем, суть вопроса в том, что при медленном перемещении блок двигается более нормально, то есть зрительно оптимально, а, если двигать мышкой быстро, то начинаются дерганья. Как разрешить такую проблему?
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
@axeax
https://jsfiddle.net/um60swvo/
закомментил странные условия
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы