Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2010, 23:48
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Вопрос по JS
Доброго вам времени суток! В javascript я чайник, но стараюсь его изучать. И вот такая проблемка, вот код :
<html>
<head>
<script>
function mousePageXY(e){
var x = 0, y = 0;
x = e.clientX;
y = e.clientY;
return {"x":x, "y":y};
}
var stop;
var iddiv;
function move_am(stop,iddiv){
px1 = document.getElementById(iddiv).style.left
py1 = document.getElementById(iddiv).style.top
document.onmousemove = function(e){
var mCur = mousePageXY(e);
tox = mCur.x
toy = mCur.y
gepox = (tox - parseInt(px1))
gepoy = (toy - parseInt(py1))
document.getElementById(iddiv).innerHTML = 'X : '+gepox+' Y : '+gepoy
if (stop == "ask"){
var lfet = document.getElementById(iddiv).style.left
var tfet = document.getElementById(iddiv).style.top
document.getElementById(iddiv).style.left = lfet
document.getElementById(iddiv).style.top = tfet
} else {
document.getElementById(iddiv).style.left = gepox
document.getElementById(iddiv).style.top = gepoy
}
}
}
</script>
</head>
<body>

<div style="position: absolute; width: 100px; height: 100px;background-color: #808080; border-top:20px solid;left:37px; top:26px" onMouseDown="move_am('lol',this.id)" onclick="move_am('ask',this.id)"  id="layer1">
&nbsp;</div>

</body>
</html>

Здесь на экране появляется слой и при нажатии на него левой кнопкой мыши, слой должен перемещаться за ней, после отпускания клавиши мыши слой останавливается и сохраняет свою позицию.
И есть одно "но", после завершения перемещения слоя, координаты мыши начинают подсчитываться относительно слоя, а не относительно документа.
Как этого избежать?
Пожалуйста, объясните по подробнее, и прошу без таких фраз как "гугл в помощь", "библиотека рулит" или "вот же есть готовый скрипт - юзай".
Жду)
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2010, 08:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/ui/draganddrop
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2010, 08:34
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Знаю я эту тему, а по моей ничего не по советуете?
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2010, 08:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

координаты мыши от твоего скрипта не меняються!!!
если ты ориентируешься на свой вывод
document.getElementById(iddiv).innerHTML = 'X : '+gepox+' Y : '+gepoy

то он у тебя показывает смещение курсора относительно дива
gepox = (tox - parseInt(px1))  
 gepoy = (toy - parseInt(py1))

onclick="move_am('ask',this.id)" - это обновляет параметры px1 py1 и относительно их новых показаний выводиться твоё сообщение после "остановки"
а это вобще из разряда масло масляное
var lfet = document.getElementById(iddiv).style.left  

 var tfet = document.getElementById(iddiv).style.top  

document.getElementById(iddiv).style.left = lfet  

document.getElementById(iddiv).style.top = tfet
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2010, 09:10
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Ну ведь остановить как то надо
var lfet = document.getElementById(iddiv).style.left 
 
 var tfet = document.getElementById(iddiv).style.top 
 
document.getElementById(iddiv).style.left = lfet 
 
document.getElementById(iddiv).style.top = tfet
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2010, 09:11
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Мой скрипт можно как нить поправить? Чтобы элементы правильно двигались?
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2010, 09:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

htaccess,
по drag'n'drop тонны статей написано, почитайте, и поймёте, в чём у вас ошибка.
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2010, 09:39
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Ребят, можете скинуть готовый рабочий скрипт, где будет нормально перемещаться хотябы 1 div ? Вот только тапками кидаться не надо.
Ответить с цитированием
  #9 (permalink)  
Старый 21.06.2010, 09:54
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы поиском принципиально не пользуетесь?
http://yandex.ru/yandsearch?text=%D1...fx3&clid=46510
Ответить с цитированием
  #10 (permalink)  
Старый 21.06.2010, 10:13
Интересующийся
Отправить личное сообщение для htaccess Посмотреть профиль Найти все сообщения от htaccess
 
Регистрация: 20.06.2010
Сообщений: 17

Мне нужен пример, а не чей то скрипт, где куча всяких левых функций и тупо скопированных статей с других сайтов.
Кстати, я всё сам доделал. Всем спс, кто отозвался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите задать переменную в js bsgroupua Общие вопросы Javascript 3 01.02.2010 18:28
Вопрос по JS Tiser Общие вопросы Javascript 3 04.10.2009 21:44
Вопрос по js+form (переменные) Georgiy Общие вопросы Javascript 18 20.08.2009 14:41
Самая лучшая книга по JS? ulandj Оффтопик 2 06.04.2009 11:35
Вопрос к гуру. Title через js. Не выводит title из тега <TR> shkur Элементы интерфейса 24 19.06.2008 09:03