Как уже говорилось, вы не можете установить положение мыши с помощью Javascript.
Поскольку вы спрашивали о реализации этого на mousedown
, я предполагаю, что пользователь перетаскивает что-то по экрану. Таким образом, вы можете иметь элемент, который они перетаскивают, чтобы показать это поведение. Вам нужно два элемента, которые будут действовать как регионы: один, где цель может свободно перемещаться, а другой - для определения размера границы. Я бы сделал это с помощью jQuery, чтобы сократить код, но в основном у вас будет что-то вроде этого. (Непроверенный код)
HTML:
<div class='borderLand'>
<div class='freeZone'>
<img class='draggable'>
</div>
</div>
CSS:
.borderLand {position: relative; width: 110px; height: 110px;}
.freeZone {position: relative; top: 10px; left:10px; height: 100px; width: 100px;}
JS:
Я не могу написать полный код на макушке, но алгоритм будет выглядеть примерно так:
onmousedown{
check for click location
if it's over the draggable (watch for bubbling) begin dragging, set dragging flag
}
onmouseup{
clear dragging flag if it's set
}
borderland onmouseover{
if dragging, stop the movement of the draggable (watch for bubbling here too)
}
borderland onmouseout{
start dragging again (if they move back in or out it doesn't matter, you want to drag)
}
Извините, если вам нужно больше подробностей, но делать это простым JS было бы немного долго, и я не уверен, какая помощь вам нужна.