2014-09-04 4 views
0

Я пытаюсь переместить div, используя JQuery .mousemove(), но его правильная работа только в 1-й раз мыши, введите div#container. Моя цель - переместить div#hello в любом месте внутри div#container курсор перемещается. Пожалуйста, проверьте мой код sample и, пожалуйста, помогите, если я что-то упустил.mousemove не работает должным образом

+1

Проблема заключается в том, что 'animate' дорого и ваш слушатель вызывает его несколько десятков раз в секунду, как вы переместите мышь. Если вы переместите указатель мыши сверху или снизу в середину элемента, вы увидите, работает ли он отлично. – apsillers

+0

Спасибо за ответ, но есть ли другой способ, я могу это сделать? –

+0

Попробуйте сделать анимацию занятой меньше времени. Что-то вроде '$ (this) .animate ({left: e.pageX}, 10);' в вашей скрипке. – flowstoneknight

ответ

0
  1. вы должны добавить контейнер DIV в ваш HTML
  2. вы должны связать событие «контейнер» не «привет» ДИВО
  3. вы можете манипулировать CSS функции «Привет» дел.

вы найдете код here

$("#container").mousemove(function (e) { 
$("#result").text(e.pageX + ',' + e.pageY); 
$("#hello").css('left', e.pageX); 
$("#hello").css('top', e.pageY); 
}); 
0

Попробуйте это:

HTML

<div id="container"> 
    <div id="hello">Hello</div> 
</div> 

JS

$("#container").mousemove(function (e) { 
if((e.pageX<365)&&(e.pageY<190)) 
{ 
    $("#hello").animate({left:e.pageX},0); 
    $("#hello").animate({top:e.pageY},0); 
} 
}); 

CSS

#hello { 
    position:absolute; 
} 
#container { 
    width:400px; 
    height:200px; 
    border:1px solid blue; 
} 

DEMO

Смежные вопросы