Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужна помощь с перемещение Div'a по экрану (https://javascript.ru/forum/misc/25839-nuzhna-pomoshh-s-peremeshhenie-div%27-po-ehkranu.html)

OklickSpb 17.02.2012 02:47

Нужна помощь с перемещение Div'a по экрану
 
Ребят, вот нашел такой код, очень интересный:
function move_me(e) {
    //Отлавливаем координаты в момент onmousedown
    if(!e) e = window.event;
    x = e.pageX || e.x;
    y = e.pageY || e.y;
    elem = document.getElementById("chatwindow"); //Указываем на наш элемент
    //Вешаем на документ правила для передвижения курсора
    document.onmousemove = function(e) {
        //Отлавливаем координаты
        if(!e) e = window.event;
        var x2 = e.pageX || e.x;
        var y2 = e.pageY || e.y;
        //Задаем эти координаты элементу
        elem.style.top = y2+'px';
        elem.style.left = x2+'px';
    }
    document.onmouseup = function() {  document.onmousemove = null; };
}



Вызывается вот так: <div > onmousedown="move_me(event)"</div>

Теперь внимание вопрос: как сделать, что бы когда человек нажимает и водит по экрану курсором, текст не выделялся, который на заднем плане и как сделать так, что бы Div не таскался за верхний левый угол, а за то место, где на него нажали? Может не очень хорошо объяснил ситуацию, но как мог)
Заранее спасибо!:)

И еще был бы очень благодарен, если кто то подскажет код, как сделать отправку сообщения по enter.

Mахmахmахimus 17.02.2012 03:33

http://javascript.ru/ui/draganddrop

OklickSpb 17.02.2012 21:21

Написал код проще:

var xshift = 0;
var yshift = 0;
function move_me(e) 
{
 if(!e) e = window.event;
 x = e.pageX || e.x;
 y = e.pageY || e.y;
 elem = document.getElementById("chatwindow");
 xshift = x-elem.style.left.substring(0,elem.style.left.length-2);
 yshift = y-elem.style.top.substring(0,elem.style.top.length-2);
 document.onmousemove = function(e)
 {
  if(!e) e = window.event;
  var x2 = e.pageX || e.x;
  var y2 = e.pageY || e.y;
  y2 = y2-yshift;
  x2 = x2-xshift;
  elem.style.top = y2 + "px";
  elem.style.left = x2 + "px";
  chatNumber_Char.innerHTML = "Горизонталь: "+x2+" Вертикаль:"+y2;
 }
 document.onmouseup = function()
 {
 document.onmousemove = null;
 }
}


Но как теперь в него добавить функицю, которая запрещает выделять текст, во время передвижения Div'а?
И как можно ограничить перемещение этого Div'a ?


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