Показать сообщение отдельно
  #1 (permalink)  
Старый 04.04.2010, 12:36
Новичок на форуме
Отправить личное сообщение для PHProgress Посмотреть профиль Найти все сообщения от PHProgress
 
Регистрация: 04.04.2010
Сообщений: 4

Определить тэг под перемещаемым контейнером DIV.
Добрый день, написан небольшой Drag and Drop.

Смысл кода в следующем – перемещение контейнеров с классом DragCan из одной ячейки таблицы в другую.

Проблеме в следующем. Когда перемещаешь данный контейнер, и если курсор находиться в его пределах – я не могу определить место для вставки. Метод window.event. srcElement.tagName выдает название тэга Div. Т.е. моего контейнера, который мы перемещаем в данный момент. Как мне узнать текущий тэг под контейнером с классом DragCan?

В приложении файл в формате txt с кодом.

----

<html><head>
<script language="JavaScript"> 
	
flg = (document.all) ? 0 : 1;
var obj, objClone, TMPx, TMPy;

function mousedown(ev) 
{
	obj = event.srcElement;

	/* выходим на тэг DIV (SPAN) с классом dragNdrop */
	while(!(obj.getAttribute("className") == "dragCan") && obj)
	obj = obj.parentElement;
}
 
function mousemove(ev) 
{
	if (obj) 
	{
		/* Создаем возможность перемещения объекта */
		obj.setAttribute ("className", "dragMove");
		obj.style.pixelLeft = event.clientX + document.body.scrollLeft - 55;
		obj.style.pixelTop 	= event.clientY + document.body.scrollTop - 20;
		
		//????????????????????????????????????????7Вот 
		//сзесь - как мне определить имя тэга под перемещаемым контейнером DIV? \n Это можно закоментировать") == false)
	
		document.all.DWsInputText.value = " Тэг для вставки " + document.activeElement.below;

		
		return false;
	}
}
 
function mouseup() 
{
	obj.setAttribute ("className", "dragCan");
	switch ( event.srcElement.tagName )
	{
		case 'TD' : event.srcElement.appendChild(obj); break;
		case 'DIV':	event.srcElement.insertAdjacentElement ("beforeBegin", obj ); break;
		default: 	alert ("Вставка произошла за пределы поля TD\nВозвращаем элемент на место!"); break;
	}
	obj = null;
}
 
if (flg) 
{
  document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
}
 
document.onmousedown = mousedown;	/* Пользователь начал перетаскивание */
document.onmousemove = mousemove;
document.onmouseup = mouseup;		/* Пользователь заверши перетаскивание */
 
 
 
 
</script>


<style type="text/css">
/* Класс для объектов, 
с которомы можно производить перенос */
.dragCan
{
	position: static;
	width: 150px;
	background-color: #009966; 
	border: #000000 1px solid;
}

/* Класс клонированного объекта */
.dragMove
{
	/* z-index: -1; */
	cursor: move;
	position: absolute;
	width: 150px;
	color: red;
	background-color: #efefef; 
	border: #000000 1px dashed;
	filter: alpha (opacity=50);
}
</style>

</HEAD>
 
 
<BODY>

Текущий тэг<input type="text" id="DWsInputText">


<hr>
 <table border="4" align="center" height="300" width="1000">
 <tr><td colspan="3"> <center><h2>В эту таблицу должна перенестись картинка!</h2></center> </td></tr>
 <tr><td width="20%"><div class="dragCan" > <b>^. Новые средства безопасности и конфиденциальности позволяют сделать просмотр веб-страниц более безопасным.</b> </div>	
 	<div class="dragCan"><b>4. Действия перья.</b> </div>		
 	<div class="dragCan"><b>5. Информация была полезной?</b></div></td>  <td width="60%"> -- <b>Привет, это тест</b> Без всего <i>Я наклонный текст</i> </td> <td width="20%"> 
 
	<div class="dragCan"><b>1. Сведения, приведенные в этом разделе справки, относятся к Windows Internet Explorer 8.</b></div>	
 	<div class="dragCan"><b>2. Сведения, приведенные в этом разделе справки, относятся к Windows Internet Explorer 8.</b></div>		
 	<div class="dragCan"><b>3. Сведения, приведенные в этом разделе справки, относятся к Windows Internet Explorer 8.</b></div>
 	 <!-- ‚ б«Ґ¤го饩 бва®зЄҐ Їа®ЇЁиЁвҐ ॠ«м­лҐ ЇгвЁ, Ј¤Ґ ­ 室пвбп ў иЁ Є авЁ­ЄЁ -->
<div class="dragCan" style="cursor: hand; border: #000000 3px solid;">
ильтрация InPrivate предотвращает предостав<br>
<img src="http://t3.gstatic.com/images?q=tbn:d3izzojwwt-PmM:http://www.memorial.ru/lists/irkutsk/aeroplans/il76.gif" name="a"><br>
Привет.
</div>
 
  </td></tr>
 </table>
 

<!-- ‚ б«Ґ¤го饩 бва®зЄҐ Їа®ЇЁиЁвҐ ॠ«м­лҐ ЇгвЁ, Ј¤Ґ ­ 室пвбп ў иЁ Є авЁ­ЄЁ -->
<div class="dragCan" style="cursor: hand; border: #000000 3px solid;">
 <table border="1"><tr><td>
<img src="http://test1.ru/themes/classic/images/ico/delete.gif">
<img src="drop.gif" style="cursor: move;">
<img src="http://test1.ru/themes/classic/images/ico/edit.gif">
<img src="http://test1.ru/themes/classic/images/ico/delete.gif">
<br>
<img src="http://t3.gstatic.com/images?q=tbn:d3izzojwwt-PmM:http://www.memorial.ru/lists/irkutsk/aeroplans/il76.gif" name="a"><br>
Привет.
</td></tr></table></div>
 
 

 
<div class="dragCan">
<img src="drop.gif" style="cursor: move;"><br>
Привет.
</div>
 
<div class="dragCan">
<img src="drop.gif" style="cursor: move;"><br>
<img src="http://t3.gstatic.com/images?q=tbn:d3izzojwwt-PmM:http://www.memorial.ru/lists/irkutsk/aeroplans/il76.gif"><br>
</div>
 
<div class="dragCan">
<img src="http://t3.gstatic.com/images?q=tbn:d3izzojwwt-PmM:http://www.memorial.ru/lists/irkutsk/aeroplans/il76.gif"><br>
</div>

 

<div class="dragCan">
<img src="http://t3.gstatic.com/images?q=tbn:d3izzojwwt-PmM:http://www.memorial.ru/lists/irkutsk/aeroplans/il76.gif">
Режим просмотра InPrivate позволяет посещать веб-страницы без сохранения истории в Internet Explorer. 
<table border="1"><tr><td>Тестовая таблица</td></tr></table>
Это помогает предотвращать получение посторонними пользователями компьютера информации о посещенных страницах и просмотренном содержимом. Дополнительные сведения см. в разделе Что такое просмотр InPrivate?
</div>
 

</body>
</html>
Вложения:
Тип файла: txt test3.1.txt (5.0 Кб, 7 просмотров)

Последний раз редактировалось PHProgress, 04.04.2010 в 13:00.
Ответить с цитированием