У меня есть веб-сайт с перетаскиваемом изображения внутри DIV, код скрипта выглядит следующим образом:позиционирования перетаскивать изображения с позиции Javascript()
var offset = 0,
xPos = 0,
yPos = 0;
$(document).ready(function(){
$(".item").draggable({
containment: '#house_wall1',
drag: function(){
offset = $(this).position();
xPos = offset.left;
yPos = offset.top;
$('#posX').text('x: ' + xPos);
$('#posY').text('y: ' + yPos);
},
// Find original position of dragged image.
start: function(event, ui) {
// Show start dragged position of image.
var Startpos = $(this).position();
$("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
},
// Find position where image is dropped.
stop: function(event, ui) {
// Show dropped position.
var Stoppos = $(this).position();
$("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
}
});
});
Моя проблема заключается в том, что х и у значения определяются из край экрана, а не div, который они должны использовать. Поэтому, если у вас есть экран с более низким разрешением или если окно браузера меньше, то значения x и y будут отличаться от экрана с более низким разрешением.
Я разместил проблему, подобную этому ранее, и подумал, что она исправлена, но, к сожалению, это не так. Я слышал, что использование position()
вместо offset()
должно выполнить эту работу, но это все еще ничего не исправить. Может быть, это потому, что position()
равен offset()
в этом случае?
Заранее спасибо.
lolz thanks dude! – user3287771
добавление: если вы хотите сохранить div в текущей позиции и служить координатами, вы должны использовать «относительные» (и «абсолютные» для внутренних элементов). позиционирование как абсолютное, поместит div в (0, 0) WRT элемент DOM предка, который имеет другое нестатическое положение (которое может быть, в худшем случае, верхним углом документа) или (слева, сверху) WRT, этот элемент , если определена оппонент. –