powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Drag and Drog
4 сообщений из 4, страница 1 из 1
Drag and Drog
    #38640632
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот нашёл примерчик в сети http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop

но тут явно указана единственно возможное иесто для перетаскивания картинки.

возможно ли сделать так чтоб перетаскивать объект свободно но всей странице?
...
Рейтинг: 0 / 0
Drag and Drog
    #38640642
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

Так нужно перетаскивать или дропать? window - тоже объект.
...
Рейтинг: 0 / 0
Drag and Drog
    #38640657
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar,

http://javascript.ru/ui/draganddrop#vizualnoe-peremeshchenie-elementa

Простой вариант
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	<div style="position:absolute; padding:5px; top:50px; left:70px; border:1px solid #808080;" onmousedown="dragOBJ(this,event); return false;">Перемещаемый DIV</div>
</body>

<script language="JavaScript">
function $(v) { 
  return(document.getElementById(v));
}

function agent(v) { 
  return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0));
}

function xy(e,v) { 
  return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX));
}

function dragOBJ(d,e) {
  function drag(e) {
    if(!stop) {
      d.style.top=(tX=xy(e,1)+oY-eY+'px'); d.style.left=(tY=xy(e)+oX-eX+'px');
    }
  }
  var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;
  document.onmousemove=drag;
  document.onmouseup=function() {
    stop=1; document.onmousemove=''; document.onmouseup='';
  };
}
</script>
</html>

Посложнее. Можно таскать за заголовок, изменять размер за уголок.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	<title>Окна как в Windows</title>
<style>
.DivWnd {
	position:absolute;
	min-width:150px;
	min-height:55px;
	font-family:Tahoma,'MS Sans Serif','sans-serif';
	font-size:10pt;
	background:#CED9E7;
	border-radius:4px;
	box-shadow:0 0 0 1px #ECF2FB, 0 0 0 2px #A2B1C5, 0 0 0 3px #D8E0ED, 0 0 0 4px #DBE3F1;
	color:#04468C;
	overflow:hidden;
}
.DivWnd .DivHeader {
	padding-left:6px;
	font:700 8pt/20px Tahoma,'MS Sans Serif','sans-serif';
	cursor:move;
}
.DivWnd .DivContent {
	position:absolute;
	left:3px;
	right:3px;
	top:23px;
	bottom:3px;
	background:#DFE8F6;
	border:1px solid #99BBE8;
	color:#000;
	text-align:center;	
}
.DivWnd .ResizeCorner {
	position:absolute;
	bottom:-2px;
	right:-2px;
	width:15px;
	height:15px;
	cursor:se-resize;
}
.DivWnd .cmdCloseWnd {
	position:absolute;
	top:3px;
	right:3px;
	width:15px;
	height:15px;
	background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAAo0lEQVR42mNggIIZu57/JxYzIAOQwL9//4jGcANI1YhiAEzzuz8QPG/jIzgbGSOLY2h++QOiQNWpH0yD+DCMLo6h+elXCEZWiI0PwhiaH3xCYGQNMBpZHkPzuce/UDCyRnQ5DM0Xnv6GY2w2I8tjaL78/C8YI2vAxgdhDM1XX6L6FcSHYXRxDM03XkMwSAGMjYyRxbEmEmya0DFKIqEobVOSqwDKyew+DCUMZQAAAABJRU5ErkJggg==);
	cursor:pointer;
}
#Form1 {
	top:200px;
	left:500px;
	min-width:270px;
	min-height:200px;
}
</style>
</head>
<body onload="SetEvents()">
<div class="DivWnd" id="Form1">
	<div class="DivHeader">Еще одно окно <div class="cmdCloseWnd"></div>	</div>
	<div class="DivContent">
		<br>
		Весь секрет адамантия в том, что если<br>удалось получить этот необыкновенный<br>сплав в жидкой форме, его нужно<br> хранить... подогретым.
		Иначе он<br>затвердеет... И его не разрушишь...
	</div> <!-- DivContent -->
	<div class="ResizeCorner"></div>
</div> <!-- DivWnd -->

<div class="DivWnd">
	<div class="DivHeader">Перемещаемый DIV <div class="cmdCloseWnd"></div>	</div>
	<div class="DivContent">Можно растянуть за уголок</div>
	<div class="ResizeCorner"></div>
</div>

<script>
function gid (idx) {return document.getElementById(idx);}

function GetPosEl(el){
	var left = 0
	var top	= 0
	while (el.offsetParent){
		left += el.offsetLeft
		top	+= el.offsetTop
		el = el.offsetParent
	}
	left += el.offsetLeft
	top	+= el.offsetTop
	return {x:left, y:top}
}

function GetMouseXY(event) {// Функция для определения координат указателя мыши
	var x = y = 0;
	if (document.attachEvent != null) {// Internet Explorer & Opera
		x = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		y = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	} else if (!document.attachEvent && document.addEventListener) {// Gecko
		x = event.clientX + window.scrollX;
		y = event.clientY + window.scrollY;
	} else {
// Do nothing
	}
	return {x:x, y:y};
}

function MoveForm(e) {
	e = e || window.event;
	var el = (e.target || e.srcElement).parentNode;

	function drag(e) {
		if (!stop) {el.style.top = GetMouseXY(e).y + oY - eY + 'px'; el.style.left = GetMouseXY(e).x + oX - eX + 'px';}
	}
	var oX=GetPosEl(el).x, oY=GetPosEl(el).y, eX=GetMouseXY(e).x, eY=GetMouseXY(e).y, stop = false;

	document.onmousemove = drag;
	document.ondragstart = function() {return false}
	document.body.onselectstart = function() {return false}

	document.onmouseup=function() {
		stop = true; document.onmousemove = null; document.onmouseup = null; document.ondragstart = null; document.body.onselectstart = null;
	}

	return false
}

function ResizeForm(e) {
	e = e || window.event;
	var el = (e.target || e.srcElement).parentNode;

	function drag(e) {
		if (!stop) {el.style.height = GetMouseXY(e).y - oH + 'px'; el.style.width = GetMouseXY(e).x - oW + 'px';}
	}
	var oH = GetMouseXY(e).y - el.offsetHeight, oW = GetMouseXY(e).x - el.offsetWidth, stop = false;

	document.onmousemove = drag;
	document.ondragstart = function() {return false}
	document.body.onselectstart = function() {return false}

	document.onmouseup=function() {
		stop = true; document.onmousemove = null; document.onmouseup = null; document.ondragstart = null; document.body.onselectstart = null;
	}

	return false
}

function CloseForm(e) {
	e = e || window.event;
	var el = (e.target || e.srcElement).parentNode.parentNode;
	el.style.display = 'none';
}


function SetEvents() {
	var i = 0;

	var el = document.getElementsByClassName('DivHeader');
	var cnt = el.length;
	for (i=0; i<cnt; i++) {
		el[i].onmousedown = MoveForm;
	}

	el = document.getElementsByClassName('ResizeCorner');
	cnt = el.length;
	for (i=0; i<cnt; i++) {
		el[i].onmousedown = ResizeForm;
	}

	el = document.getElementsByClassName('cmdCloseWnd');
	cnt = el.length;
	for (i=0; i<cnt; i++) {
		el[i].onclick = CloseForm;
	}	
}
</script>
</body>
</html>


...
Рейтинг: 0 / 0
Drag and Drog
    #38640877
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо попробую
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Drag and Drog
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]