Jquery 如何获得div的坐标?
我使用下面的代码来获取被删除元素的位置。我正在将位置保存到数据库中,以便用户下次打开页面时,元素处于相同的位置。到目前为止,它工作正常,但当屏幕大小改变时,位置也会改变。例如,如果我使用大桌面屏幕,捕获图像位置,将其保存到数据库并在笔记本电脑[小屏幕toughbook]中打开同一页,位置会发生变化 我猜这是因为JQuery获取元素相对于页面的位置,而不是相对于容器“div”。所以,如何获得元素在div中的位置Jquery 如何获得div的坐标?,jquery,css-position,Jquery,Css Position,我使用下面的代码来获取被删除元素的位置。我正在将位置保存到数据库中,以便用户下次打开页面时,元素处于相同的位置。到目前为止,它工作正常,但当屏幕大小改变时,位置也会改变。例如,如果我使用大桌面屏幕,捕获图像位置,将其保存到数据库并在笔记本电脑[小屏幕toughbook]中打开同一页,位置会发生变化 我猜这是因为JQuery获取元素相对于页面的位置,而不是相对于容器“div”。所以,如何获得元素在div中的位置 $(document).ready(function() { //Cou
$(document).ready(function() {
//Counter
counter = 0;
//Make element draggable
$("#fd img").draggable({
helper: 'clone',
containment: '#frame',
//When first dragged
stop: function(ev, ui) {
var pos = $(ui.helper).offset();
objName = "#clonediv" + counter
$(objName).css({ "left": pos.left, "top": pos.top });
$(objName).removeClass("drag");
//When an existiung object is dragged
var container = $('#frame');
$(objName).draggable({
containment: container,
stop: function(ev, ui) {
var pos = $(ui.helper).offset();
//console.log($(this).attr("id"));
//console.log(pos.left)
//console.log(pos.top)
}
});
}
});
//Make element droppable
$("#frame").droppable({
drop: function(ev, ui) {
var angle;
if (document.getElementById('angle').value != "") {
angle = document.getElementById('angle').value;
document.getElementById('angle').value = 0;
}
else {
angle = 0;
}
调试器
if(ui.helper.attr('id').search(/drag[0-9]/)!=-1){
谢谢,我不知道你的代码到底是如何工作的,但我认为这可以解决问题:
saveCoords($(ui.helper).offsetLeft, $(ui.helper).offsetTop, angle, ui.helper.attr('id') + counter);
offset
方法获取相对于文档的位置,因此您可能希望使用position
方法,该方法提供相对于偏移父对象的位置:
var pos = $(ui.helper).position();
在代码中,您根本没有使用pos
变量,这也是它不起作用的一个原因
saveCoords(pos.left, pos.top, angle, ui.helper.attr('id') + counter);
$(ui.helper).offsetLeft给出“未定义”请查看上面的我的entore代码offsetLeft是一个有效的元素方法(.),如果它不工作,那一定是因为ui.helper为空。$(ui.helper).不为空,只有$(ui.helper).offsetLeft是“未定义”的,我没有看到任何语法。将它添加到那里…它说了什么?
警报(“L:”+$(ui.helper).offsetLeft+“T:”++$(ui.helper.offsetTop);
ui.absolutePosition.left和代码建议的结果都是相同的左/顶值。请查看上面的整个代码
saveCoords(pos.left, pos.top, angle, ui.helper.attr('id') + counter);