Я позиционирую div для события mousemove, устанавливая его css в левом положении, демонстрацию которого можно найти по адресу:
http://jsfiddle.net/JLtT3/53/
Какие у меня проблемыwith устанавливает левую и правую границы для остановки.
Независимо от того, что я делаю, кажется, что он переходит границы (левые и правые), которые я установил, поэтому -13px влево.
Если я записываю левую позицию в firebug, она превращается в минус цифры, несмотря на то, что у меня есть:
if (sbar <0) </p>
в моем коде.
jQuery (рабочий пример, включая html по указанному выше URL):
$(document).ready(function() {
var statusbar = $(".jspDrag");
statusbar.mousedown(function(event) {
handleMouseDown(event, this);
});
$("body").mouseup(function(event) {
handleMouseUp(event, this);
});
});
function handleMouseDown(e, sbar) {
var sbarPosition = $(sbar).position();
var sbarPosition = e.pageX - sbarPosition.left;
var endRightPosition = $('.jspCapRight').position();
var endRightPosition = endRightPosition.left - $(sbar).width();
var endLeftPosition = $('.jspCapLeft').position();
var endLeftPosition = endLeftPosition.left;
if (e.button == 0)
{
$("body").bind('mousemove', function(event) {
handleMouseMove(event, $(sbar), sbarPosition, endLeftPosition, endRightPosition);
});
}
}
function handleMouseUp(e, sbar) {
$("body").unbind('mousemove');
}
function handleMouseMove(e, sbar, sbarMousePosition, endLeftPosition, endRightPosition) {
var moveXposition = e.pageX - sbarMousePosition;
var sbarLeft = $(sbar).position();
var sbarLeft = sbarLeft.left;
console.log(sbarLeft); //firebug
if ((sbarLeft >= endLeftPosition) && (moveXposition < endRightPosition))
{
$(sbar).css('left', moveXposition);
}
}