Google のパーソナライズされたホームページと同様に、最終レイアウトを保存する方法 3
var Drag = {
ragged:false,
ao:null,
tdiv:null,
ragStart:function(){
Drag.ao = event.srcElement;
if((Drag.ao.tagName == " TD")||(Drag.ao.tagName == "TR")){
Drag.ao = Drag.ao.offsetParent;
Drag.ao.style.zIndex = 100;
}else{
return;
}
Drag.tdiv = document.createElement("div");
Drag.tdiv.innerHTML = Drag.ao.outerHTML;
Drag.ao.style.border = "1 ピクセルの青の破線" ;
Drag.tdiv.style.display = "ブロック";
Drag.tdiv.style.position = "絶対";
Drag.tdiv.style.filter = "alpha(opacity = 70)";
style.cursor = "移動";
Drag.tdiv.style.border = "1px ソリッド #000000";
D rag.tdiv.style.width = Drag.ao.offsetWidth;
Drag.tdiv.style.height = ドラッグします。 ao.offsetHeight;
Drag.tdiv.style.top = Drag.getInfo(Drag.ao).top;
Drag.t div.style.left = Drag.getInfo(Drag.ao).left;
document.body.appendChild (ドラッグ.tdiv);
Drag.lastX = events.clientX;
Drag.lastY =event.clientY;
Drag.lastLeft = .style.left;
Drag.lastTop = Drag.tdiv.style.top;
}// 関数ドラッグ開始を終了します。 ()
,
if(!Drag.dragged||Drag.ao == null) return;
var tX;
var tY = イベント.clientY;
Drag.tdiv.style.left = parseInt(Drag.lastLeft)+tX-Drag.lastX;
Drag.tdiv.style.top = parseInt(Drag.lastTop)+tY-Drag.lastY;
for( var i = 0;i
if(tX >= parentCell.left &&
tX tY >= parentCell.top &&
tY var subTables =parentTable.cells[i].getElementsByTagName("table");
if(subTables.length == 0){ ️ tX tY >= parentCell.top &&
tY <= parentCell.bottom){
parentTable.cells[i].appendChild(Drag.ao);
}
Break;
for(var j = 0; j
parenttable.cells [i] .insertbefore(rad.ao、subtables [j]);
break;
} else {
dertable.cells [i] .appendchild(rad.ao); }
}// 関数のドラッグを終了します
,
ragEnd:function(){
if(!Drag.dragged) return;
Drag.dragged = false;
Drag.mm = Drag.repos(150,15);
Drag.ao.style.borderWidth = "0px ";
//Drag.ao.style.borderTop = "1px ソリッド #3366cc";
Drag.tdiv.style.b orderWidth = "0px";
Drag.ao.style.zIndex = 1;
//alert(ドラッグ.ao.outerHTML);
Drag.saveLayout();
displaySaveLayout();
}// 関数の終了ragEnd()
,
saveLayout:function()
{ // Cookie 里,按に当前布局の位置を配置过 "保存页面布局" 后,存到后台
var subTables =parentTable.cells[i].getElementsByTagName("table");
(var j = 0;j
//parentTable の j_node インデックス。行[0] ][i].childNodes
setCookie(subTables[j].id+"pos",i+"::"+j+"::"+subTables[j].id);
}
}
}//終了関数 saveLayout ()
,
inittable:function var _tablepos = new Array();まず画面上のコンテンツを JavaScript に取得してから、再レイアウト
for (var I = 0; I & lt; ParentttTable.Lengthth ;i++){
var subTables =parentTable.cells[i].getElementsByTagName("table ") ; "dragtable")break; ") if (_cookies.toString().indexOf("::") != -1)
for (var _k = 0 ; _k <_cookies.length> if (_cookies[_k] != null)
_tablepos = _cookies[_k].split("::");
//alert(_tablepos);
if (typeof(_tablepos) == "object")
{
//alert(_dragTableHtmlArray[ _tablepos[2]]);
parentTable.cells[_tablepos[0]].innerHTML += _dragTableHtmlArray[_tablepos[2]] ;
//parentTable.cells[_tablepos[0]].innerText += _dragTableHtmlArray[_tablepos[2] ];
}}}}}
}}
//_cookies. sort( );
// alert(_cookies); ,
getInfo:function(o){// 座標取得
to.left = to.right = to.top = to.bottom = 0;
var twidth = o.offsetWidth;
var theight = o.offseTheight; right = to.left+twidth;
to.bottom = to.top+theight;
}// end function getInfo()
,
repos:function(aa,ab){
var f = ドラッグします。 tdiv.filters.alpha.opacity;
var tl = parseInfo(Drag.tdiv).left);
var tt = parseInt(Drag.getInfo(Drag.tdiv).top);
var kl = (tl -Drag.getInfo(Drag.ao).left)/ab;
var kt = (tt-Drag.getInfo(Drag.ao).top)/ab;
var kf = f/ab;
return setInterval(
(){
if(ab<1){
clearInterval(Drag.mm);
Drag.tdiv.removeNode(true);
Drag.ao = null;
}
tl -= kl;
tt -= kt;
f -= kf;
Drag.tdiv.style.left = parseInt(tl)+"px ";
Drag.tdiv.style.top = parseInt(tt)+"px";
Drag.tdiv.filters.alpha.opacity = f;
}// end アニメ画效果
,aa/ab)
}// end function repos()
,
Drag.initTablePos();
var subTables =parentTable.cells [i].getElementsByTagName("テーブル");
if(subTables[j].className != "dragTable") Break;
subTables[j] .rows[0].className = "dragTR";
subTables[j].rows[0].attachEvent("onmousedown",Drag.dragStart);
}
document.onmousemove = Drag.draging;
document.onmouseup = DragE nd; }//オブジェクトドラッグの終わり
Drag.inint();
www.bkjia.com