Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переместить объект (https://javascript.ru/forum/dom-window/44656-peremestit-obekt.html)

andrei0077 28.01.2014 12:05

Переместить объект
 
Добрый день. Я начал осваивать javascript и столкнулся с проблемой - не работает функция moveObjTo. При нажатии на кнопку, кнопка должна перемещаться, но она не двигается. Подскажите, в чем ошибка?
<!DOCTYPE html>
<html>
<body>
 
<p>Click the button to move it.</p>
 
<button id="myButton" onclick="myFunction()">Click to move</button>
 
<script>
function myFunction()
{
  moveObjTo('myButton',115,115);
}
</script>
 
</body>
</html>

alexan0308 28.01.2014 12:15

Цитата:

Сообщение от andrei0077 (Сообщение 294517)
Добрый день. Я начал осваивать javascript и столкнулся с проблемой - не работает функция moveObjTo. При нажатии на кнопку, кнопка должна перемещаться, но она не двигается. Подскажите, в чем ошибка?

А нету в JavaScript функции moveObjTo. Тот пример, на который ты опирался, использует какую то библиотеку. Скачай и подкючи эту библиотеку или делай по другому

alexan0308 28.01.2014 12:17

А нету в JavaScript функции moveObjTo. Тот пример, на который ты опирался, использует какую то библиотеку. Скачай и подключи эту библиотеку или делай по другому

andrei0077 28.01.2014 14:07

Понятно, а какие можно использовать встроенные функции для перемещения объекта?

рони 28.01.2014 14:10

andrei0077,
поиск: анимация

andrei0077 28.01.2014 14:36

Пытаюсь сделать через left, всё равно не работает.
<!DOCTYPE html>

<html>

<body>

  
<p>Click the button to move it.</p>
  
<button id="myButton" onclick="myFunction()">Click to move</button>
  
<script>
function myFunction()
{
 myButton.style.left = myButton.style.left + 50;
}
</script>
  
</body>
</html>

рони 28.01.2014 14:51

andrei0077,
читали доки невнимательно ! здесь <button id="myButton" onclick="myFunction()"> никакого myButton.style нет!
Стили и классы, getComputedStyle

рони 28.01.2014 14:55

andrei0077,
<!DOCTYPE html>

<html>

<body>


<p>Click the button to move it.</p>

<button id="myButton" onclick="myFunction()" style=" left: 50px; position: relative">Click to move</button>

<script>
function myFunction()
{
 myButton.style.left = parseFloat(myButton.style.left) + 50 + 'px';
}
</script>

</body>
</html>

kostyanet 29.01.2014 04:29

Внерамочная, автозагружаемая, автономная функция таскания чего угодно куда хочешь. (с) я

function DragElems(elemtype) {

	var x	=0; 
	var y	=0; 
	var oX	=0; 
	var oY	=0; 
	var pX	=0; 
	var pY	=0; 
	var obj	=0; 
	var z	=0; 
	var mouse=0;
	
	var refresh = function(e) {

		e = e || window.event;
		
		if (e.type == 'mousedown') {
			set(e);
			oX = x;
			oY = y;
			obj.style.curor = 'move';
			obj.style.zIndex = z++;
			pos();
		}
		
		if (e.type == 'mouseup') {
			obj.style.cursor = 'auto';	
			obj.style.border = "0";
		}
		
		if (e.type == 'mousemove') {
			set(e);
			obj.style.curor = "move";
			obj.style.left = (x-oX+pX)+"px";
			obj.style.top = (y-oY+pY)+"px";
		}
	};
	
	var pos = function() {
		pX = pY = 0;
		var o = obj;
		if(o.offsetParent) {
			do {
				pX += o.offsetLeft;
				pY += o.offsetTop;
			} while((o = o.offsetParent));
		}
	};
		
	var set = function(e) {
		if(e.pageX || e.pageY) {
			x = e.pageX;
			y = e.pageY;
		}
		else if(e.clientX || e.clientY)	{
			x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
	}; 
	
	var show = function() {
		obj.style.border = "1px solid grey";
		mouse = 1; 
	};
	
	// автолодер
	(function() {

		var elems = document.getElementsByTagName(elemtype);

		for(var i = 0; i < elems.length; i++) {
		
			addEvent(elems[i], "mousedown",
				function(e) {
					obj = e.srcElement || e.target;
					refresh(e);
					z = 1;
					mouse = window.setTimeout(show, 2000);
				}
			);
			
			addEvent(elems[i], "mouseup", 
				function(e){ 
					window.clearTimeout(mouse); 
					refresh(e);
					mouse = 0;
				} 
			);
				
			addEvent(elems[i], "mousemove",	function(e) { 
				if(mouse == 1)
					refresh(e);
				}
			);
			
		}

	})(elemtype);

};

kostyanet 29.01.2014 04:31

addEvent() это addEventListener()


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