Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как можно перемещать Div'ак? (https://javascript.ru/forum/dom-window/10381-kak-mozhno-peremeshhat-div%27ak.html)

Арсений 01.07.2010 17:16

Как можно перемещать Div'ак?
 
Доброе время суток.
Такой вопрос:)
Скажем есть Div с размеров 4 на 4px и залитый каким либо цветом, как можно сделать, что бы можно было мышкой его перемещать?
Но без использования каких либо библиотек.

exec 01.07.2010 17:26

http://javascript.ru/ui/draganddrop

Арсений 01.07.2010 17:42

оо большое спасибо

Арсений 04.07.2010 13:07

Перечитал все, что там написано несколько раз
Понял как делать с клонированием, но вот как сделать с обычным переносом чет у меня не получается вроде делаю все правильно, как там сказано, а переносить картинку и оставлять ее в том месте где я отпускаю кнопку мыши не выходит.
Может я, что то не так делаю подскажите

JsLoveR 04.07.2010 13:34

Цитата:

Сообщение от Арсений
Может я, что то не так делаю

может, Вы покажите, что у Вас есть.

Арсений 04.07.2010 13:41

вот код страницы
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="css/point.css" type="text/css" />
<title>Stick</title>
[JS]
<script src="DragObject.js"></script>
<script src="dragMaster.js"></script>
<script src="fixEvent.js"></script>
<script type="text/javascript" language="javascript">
document.getElementById( 'img' ).onclick = function (e) {
e = e || window.event
var div = document.createElement( "div" );
div.id = "dragObjects";
div.style.position = "absolute";
div.style.width = "20px";
div.style.height = "20px";
div.style.backgroundColor = "blue";
div.style.top = (e.pageY)+"px",
div.style.left = (e.pageX)+"px";
document.body.appendChild( div );
}
</script>[/JS]
</head>
<body>
	<div id="container">
    	<div>
        	<img id="img" src="img/111.jpg" />
        </div>
    </div>
</body>


файлы javaScript
<script src="DragObject.js"></script>
<script src="dragMaster.js"></script>
<script src="fixEvent.js"></script>
я беру те которые приведены тут http://javascript.ru/ui/draganddrop

конечно я могу их сюда выкинуть но они громоздкие и думаю что будет не удобно их читать

JsLoveR 04.07.2010 13:48

Арсений,
Неохота разбираться в этих скриптах, кину Вам маленький незамысловатый скриптик:
var changePosition=null,offX=null,offY=null;
function move(id,e)
{
	e = e || window.event;
	if( e.preventDefault ) e.preventDefault(); 
	else e.returnValue = false;
	if(changePosition)
	{
		changePosition=document.getElementById(id);
		var x=e.clientX-offX;
		var y=e.clientY-offY;
		changePosition.style.left=x+"px";
		changePosition.style.top=y+"px";
	}
}
function release()
{
	changePosition=null;
}
function capture(e)
{
	e = e || window.event;
	if( e.preventDefault ) e.preventDefault(); 
	else e.returnValue = false;
	offX=e.offsetX || e.layerX;
	offY=e.offsetY || e.layerY;
	if(!changePosition)
	{
		changePosition=document.getElementById("el");
	}
}

<body onmousemove="move('el',event)">
<div  onmouseup="release()" onmousedown="capture(event)"  id="el" style="width:300px; height:200px; position:absolute; border:1px solid #000000; background-color:#996600;" ></div>
</body>

Арсений 04.07.2010 14:22

JsLoveR
спасибо все получилось :)


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