Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Движение курсора над элементом при зажатой кнопки мышки (https://javascript.ru/forum/misc/41390-dvizhenie-kursora-nad-ehlementom-pri-zazhatojj-knopki-myshki.html)

Demath 11.09.2013 21:30

Движение курсора над элементом при зажатой кнопки мышки
 
Подскажите, как узнать движется ли курсор (влево) над элементом (id="a1") при зажатой левой кнопки мышки?

Нужно при каждом таком движении на 1px вызывать функцию LeftRotate(), но не догоняю(

<script>
function LeftRotate(){ alert('Влево на 1px'); }
</script>

<div id="a1" style="width: 150px; height: 150px; border: 1px solid black;" ></div>

danik.js 11.09.2013 21:51

событие mousemove не предоставляет информацию о зажатых кнопках.
Отслеживай состояние сам по mousedown/mouseup

Яростный Меч 11.09.2013 22:05

Demath,

drag-n-drop что ли делаешь?

Demath 12.09.2013 01:24

Яростный Меч,
В canvas нужно вращать 3d-график. Типа как тут

http://www.google.ru/search?hl=ru&q=x%5E2%2By%5E2-x*y :)
(когда держишь зажатую левую кнопку мышки на графике, то можно его вращать).


Вроде получилось, только жуквери пришлось призвать ((

ruslan_mart 12.09.2013 05:26

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
#a1 {
	background: #222;
	cursor: move;
	height: 200px;
	width: 200px;
}
</style>
</head>

<body>
<div id="a1"></div>
Left: <span id="pos">0</span>

<script type="text/javascript">
(function() {
	var a1 = document.getElementById('a1'),
		tmp = 0;
	
	a1.onmousedown = function() {
		this.onmousemove = function(e) {
			if(tmp > e.pageX) LeftRotate();
			tmp = e.pageX;
		}
		window.onmouseup = function() {
			a1.onmousemove = null;
			this.onmouseup = null;
		}
	}
})();

var leftRotate = 0,
	elem = document.getElementById('pos');

function LeftRotate() {
	leftRotate++;
	elem.innerHTML = leftRotate;
}
</script>
</body>
</html>


:write:

Demath 12.09.2013 17:32

Ruslan_xDD,
Спасибо!
График крутится как и нужно было.


Часовой пояс GMT +3, время: 02:20.