gpt4 book ai didi

javascript - 无法获取表单面板的 x 和 y 坐标并在加载时从 cookie 中设置它们

转载 作者:行者123 更新时间:2023-11-28 07:30:26 25 4
gpt4 key购买 nike

我有一个带有面板的表单:

<form id="form" action="/accent/login/enter/">
<div draggable="true" id="panel" title="">
...

该面板可拖动可调整大小,并且有两个事件:

$('#panel').bind("resize",function(event){
saveform();
})
.bind("drag",function(event){
saveform();
});

函数saveform应该保存表单面板的宽度高度以及x和y坐标。它将其保存在 cookie 中。我想要这种行为,以便当用户刷新页面时,表单的面板根据 cookie 中保存的属性进行定位和对齐。我面临的第一个问题是 x 和 y 坐标仅重新计算一次,即当用户第一次拖放表单时。至于高度和宽度,它们会被正确重新计算。我面临的第二个问题是我无法设置表单的x和y坐标 - 我不知道我使用的方法是否合适。所以,我的 saveform 函数如下所示:

var saveform = function(){
var pos = $('#form:first').offset(), // recalculated only once
height = $('#panel').height(), // it is saved ok
width = $('#panel').width(), // it's ok too
data = {top:Math.round(pos.top),left:Math.round(pos.left),
height:Math.round(height),width:Math.round(width)};
$.cookie('form',data);
}

这是我用来设置面板 x 和 y 坐标的方法:

var data = $.cookie('form');
$('#panel').position({
of:$('#body'),
my:'left top',
at:'left top',
offset:data.left + " " + data.top
})

最佳答案

好吧,我找到了解决方案。现在,我的 saveform 函数如下所示:

var saveform = function(){
var pos = $('div.panel').offset(), //I added class="panel" to main div
height = $('#panel').height(),
width = $('#panel').width();
$.cookie('form',{top:pos.top,left:pos.left,
height:height,width:width});
}

我将面板的 x 和 y 设置为这样协调:

var data = $.cookie('form');
$('#panel').height(data.height).width(data.width)
.offset({top:data.top,left:data.left});

因此,主要技巧是以适当的方式应用 offset 方法。

关于javascript - 无法获取表单面板的 x 和 y 坐标并在加载时从 cookie 中设置它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com