﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / JavaScript  / Как тащить DIV / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Wed, 19 Nov 2008 19:56:55 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Как тащить DIV</title><link>http://www.relib.com/forums/Topic902684-10-1.aspx</link><description>Спасибо, Igorek!&lt;br&gt;Хороший пример :) мне надо только чуть-чуть доработать под мою задачу.</description><pubDate>Tue, 15 Aug 2006 09:30:52 GMT</pubDate><dc:creator>Vodizzz</dc:creator></item><item><title>RE: Как тащить DIV</title><link>http://www.relib.com/forums/Topic902684-10-1.aspx</link><description>Хм... по-моему если этот скрипт и работает, то уж точно не так как надо.&lt;BR&gt;Кстати cancelBubble написано не верно. Нужно через "С" писать.&lt;P&gt;А вот работающий скрипт взятый из примеров одной книги по JS&lt;P&gt;[code]&amp;lt;HTML&amp;gt;&lt;BR&gt;&amp;lt;HEAD&amp;gt;&lt;BR&gt;&amp;lt;TITLE&amp;gt;Layer Dragging&amp;lt;/TITLE&amp;gt;&lt;BR&gt;&amp;lt;STYLE TYPE="text/css"&amp;gt;&lt;BR&gt;.draggable {cursor:hand}&lt;BR&gt;&amp;lt;/STYLE&amp;gt;&lt;BR&gt;&amp;lt;SCRIPT LANGUAGE="JavaScript"&amp;gt;&lt;BR&gt;var engaged = false&lt;BR&gt;var offsetX = 0&lt;BR&gt;var offsetY = 0&lt;BR&gt;function dragIt(evt) {&lt;BR&gt;evt = (evt) ? evt : (window.event) ? window.event : ""&lt;BR&gt;var targElem = (evt.target) ? evt.target : evt.srcElement&lt;BR&gt;if (engaged) {&lt;BR&gt;if (targElem.className == "draggable") {&lt;BR&gt;while (targElem.id != "myLayer" &amp;amp;&amp;amp; targElem.parentNode) {&lt;BR&gt;targElem = targElem.parentNode&lt;BR&gt;}&lt;BR&gt;if (evt.pageX) {&lt;BR&gt;targElem.style.left = evt.pageX - offsetX + "px"&lt;BR&gt;targElem.style.top = evt.pageY - offsetY + "px"&lt;BR&gt;} else {&lt;BR&gt;targElem.style.left = evt.clientX - offsetX + "px"&lt;BR&gt;targElem.style.top = evt.clientY - offsetY + "px"&lt;BR&gt;}&lt;BR&gt;return false&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;function engage(evt) {&lt;BR&gt;evt = (evt) ? evt : (window.event) ? window.event : ""&lt;BR&gt;var targElem = (evt.target) ? evt.target : evt.srcElement&lt;BR&gt;if (targElem.className == "draggable") {&lt;BR&gt;while (targElem.id != "myLayer" &amp;amp;&amp;amp; targElem.parentNode) {&lt;BR&gt;targElem = targElem.parentNode&lt;BR&gt;}&lt;BR&gt;if (targElem.id == "myLayer") {&lt;BR&gt;engaged = true&lt;BR&gt;if (evt.pageX) {&lt;BR&gt;offsetX = evt.pageX - targElem.offsetLeft&lt;BR&gt;offsetY = evt.pageY - targElem.offsetTop &lt;BR&gt;} else {&lt;BR&gt;offsetX = evt.offsetX - document.body.scrollLeft&lt;BR&gt;offsetY = evt.offsetY - document.body.scrollTop&lt;BR&gt;if (navigator.userAgent.indexOf("Win") == -1) {&lt;BR&gt;offsetX += document.body.scrollLeft&lt;BR&gt;offsetY += document.body.scrollTop&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;}&lt;BR&gt;return false&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;function release(evt) {&lt;BR&gt;evt = (evt) ? evt : (window.event) ? window.event : ""&lt;BR&gt;var targElem = (evt.target) ? evt.target : evt.srcElement&lt;BR&gt;if (targElem.className == "draggable") {&lt;BR&gt;while (targElem.id != "myLayer" &amp;amp;&amp;amp; targElem.parentNode) {&lt;BR&gt;targElem = targElem.parentNode&lt;BR&gt;}&lt;BR&gt;if (engaged &amp;amp;&amp;amp; targElem.id == "myLayer") {&lt;BR&gt;engaged = false&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;&amp;lt;/SCRIPT&amp;gt;&lt;BR&gt;&amp;lt;/HEAD&amp;gt;&lt;BR&gt;&amp;lt;BODY&amp;gt;&lt;BR&gt;&amp;lt;H1&amp;gt;Dragging a Layer&amp;lt;/H1&amp;gt;&lt;BR&gt;&amp;lt;HR&amp;gt;&lt;BR&gt;&amp;lt;DIV ID="myLayer" CLASS="draggable" STYLE="position:absolute; top:90; left:100; width:300; height:190; background-color:lightgreen"&amp;gt;&lt;BR&gt;&amp;lt;SPAN CLASS="draggable"&amp;gt;&amp;lt;B&amp;gt;Drag me around the window.&amp;lt;/B&amp;gt;&amp;lt;/SPAN&amp;gt;&lt;BR&gt;&amp;lt;/LAYER&amp;gt;&lt;BR&gt;&amp;lt;SCRIPT LANGUAGE="JavaScript"&amp;gt;&lt;BR&gt;document.onmousedown = engage&lt;BR&gt;document.onmouseup = release&lt;BR&gt;document.onmousemove = dragIt&lt;BR&gt;document.onmouseout = release&lt;BR&gt;&amp;lt;/SCRIPT&amp;gt;&lt;BR&gt;&amp;lt;/BODY&amp;gt;&lt;BR&gt;&amp;lt;/HTML&amp;gt;[/code]&lt;P&gt;//в опере и ие работает. в мозиле не проверял, но тоже должно работать</description><pubDate>Mon, 14 Aug 2006 21:46:05 GMT</pubDate><dc:creator>Igorek</dc:creator></item><item><title>RE: Как тащить DIV</title><link>http://www.relib.com/forums/Topic902684-10-1.aspx</link><description>var cur="";&lt;BR&gt;var d=document&lt;BR&gt;function down_action()&lt;BR&gt;{ if (window.event.srcElement.tagName=="DIV")&lt;BR&gt;{ cur=window.event.srcElement.id;&lt;BR&gt;d.all[cur].style.left=window.event.clientX-50&lt;BR&gt;d.all[cur].style.top=window.event.clientY-50&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;function up_action() { cur="";}&lt;BR&gt;function move_action() {&lt;BR&gt;if (cur!="")&lt;BR&gt;{&lt;BR&gt;d.all[cur].style.left=window.event.clientX-50&lt;BR&gt;d.all[cur].style.top=window.event.clientY-50&lt;BR&gt;}&lt;BR&gt;event.canselBubble=true;&lt;BR&gt;event.returnValue=false;&lt;BR&gt;}&lt;BR&gt;&amp;lt;/script&amp;gt;&lt;BR&gt;&amp;lt;/HEAD&amp;gt;&lt;BR&gt;&amp;lt;body onmousedown='down_action()' onmousemove='move_action()' onmouseup='up_action()'&amp;gt; &lt;BR&gt;&amp;lt;div id=p1 style="position:absolute;top:100; left:100"&amp;gt;текст1&amp;lt;/div&amp;gt;&lt;BR&gt;&amp;lt;div id=p2 style="position:absolute;top:100; left:250"&amp;gt;текст2&amp;lt;/div&amp;gt;&lt;BR&gt;&amp;lt;/body&amp;gt;&lt;BR&gt;&amp;lt;/HTML&amp;gt;&lt;/P&gt;&lt;P&gt;//Точно работает в Opera 9 и IE, в FireFox 1.5 неработает</description><pubDate>Mon, 14 Aug 2006 14:46:05 GMT</pubDate><dc:creator>Vizlim</dc:creator></item><item><title>Как тащить DIV</title><link>http://www.relib.com/forums/Topic902684-10-1.aspx</link><description>Такой вопрос: Как можно сделать, чтобы, когда нажав на DIV и неотпуская мышь можно было бы тащитьь его, до тех пор пока не отпустишь мышь.&lt;br&gt;Я кое-что на примерах сделанного нарисовал, но есть не сколько ошибок:&lt;br&gt;- при первом наведении на DIV он начинает "тащиться" без нажатия на мышь, даль ше нормально - только при нажатом.&lt;br&gt;- при нажатии на DIV координаты DIV-а прыгают к координатам мыши, мне их никак не поставить на место.&lt;br&gt;Вот этот скрипт:&lt;br&gt;[code]&lt;br&gt;var amount=4;&lt;br&gt;var dfg=0;&lt;br&gt;&lt;br&gt;function iMouse()&lt;br&gt;{ ypos=event.y+document.body.scrollTop;&lt;br&gt;  xpos=event.x+document.body.scrollLeft;&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;function xx()&lt;br&gt;{dfg=5;}&lt;br&gt;&lt;br&gt;function yy()&lt;br&gt;{dfg=0;}&lt;br&gt;&lt;br&gt;function flash(Q)&lt;br&gt;{&lt;br&gt;ypos=WindDiv.style.top;&lt;br&gt;xpos=WindDiv.style.left;&lt;br&gt;if (dfg==5)&lt;br&gt;	{Q=5;&lt;br&gt;	if (Q==5)&lt;br&gt;	  {&lt;br&gt;		for (i=0; i 		{&lt;br&gt;			eval('document.all["WindDiv"].style.top=ypos-10');&lt;br&gt;			eval('document.all["WindDiv"].style.left=xpos-10;');&lt;br&gt;		}&lt;br&gt;		setTimeout("flash()",50);&lt;br&gt;	  }&lt;br&gt;	}&lt;br&gt;}&lt;br&gt;&lt;br&gt;if (document.onmousedown!="")&lt;br&gt;{document.onmousemove=iMouse;&lt;br&gt;xx();}&lt;br&gt;else&lt;br&gt;{document.onmouseup=yy;}&lt;br&gt;[/code]&lt;br&gt;&lt;br&gt;А вот DIV:&lt;br&gt;&lt;br&gt;[code]&lt;br&gt;[DIV id="WindDiv" style="position: absolute; top: 20px; left: 20px;"]&lt;br&gt;[div onMouseDown="xx()" onMouseMove="flash(0)" onMouseUp="yy()" id="ZagWin" style="position: absolute; top: 0px; left: 0px;"]&lt;br&gt;.........&lt;br&gt;[/div]&lt;br&gt;.....&lt;br&gt;[/DIV]&lt;br&gt;[/code]</description><pubDate>Mon, 14 Aug 2006 11:05:37 GMT</pubDate><dc:creator>Vodizzz</dc:creator></item></channel></rss>