現在、ドラッグドロップ スクリプトを使用して、(位置: 相対) div(s) の左と上の座標を保存しています。私の問題は、それらが保存される座標が、リロード時に常に同じ位置 (配置されている) とは限らないことです。
div は、指定された高さと幅のコンテナー内にあります (このコンテナーは、div がその内部でのみ移動するように制限します - 境界 div)
そのため、ページ全体ではなく、DIV 内のワーク/スペースのみに座標を取得しようとしています。
私はPHPを使用して、ウィジェットクラス(背景およびその他のcssベースの変数)を提供するそのページの正しいdiv /ウィジェットを取得しています
特定のウィジェットが複数ある場合に備えて、すべてのウィジェットにはカスタム ID があります。
これは私のメインコードです:
<?
$load = mysql_query("SELECT * FROM `widgets` WHERE `page`='1' AND `show`='yes'")or die(mysql_error());
while($widget = mysql_fetch_array($load)){
?>
<div id="<? echo $widget['id']; ?>" style="left: <? echo $widget['left']; ?>px; top: <? echo $widget['top']; ?>px;" class="<? echo $widget['widgetid']; ?> draggable ui-widget-content" onmouseup="find('<? echo $widget['id']; ?>','1')"> </div>
<? } ?>
これは保存用の私のJavascriptです:
function find(id, page){
var position = $("#"+id).position();
$.ajax({
type: "POST",
url: "save.php",
data: "l=" + position.left + "&t=" + position.top + "&request=" + page + "&w=" +id,
success: function(msg){
var element = document.getElementById(id);
element.style.opacity = "1.0";
}
});
}
l が左、t が上、両方とも onmouseup で送信 (w = widgetid、request = pageid)
変数がデータベースに保存されているだけで、ページに正しく配置されていません (右に大きく移動するか、わずかに上に移動します)。
どんな助けでも大歓迎です!
前もって感謝します