구현하는 방법은 각 열이 소유한 드래그 개체를 기록하여 초기화하거나 새로 고칠 때 이 열에 어떤 드래그 개체가 있는지 읽을 수 있도록 하고, 뒤쪽 열을 드래그하는 등 AppendChild를 통해 직접 드래그 개체를 추가하면 됩니다. id는 col2이고 이 열에 드래그된 개체의 ID는 col1_2, col3_1, col2_1입니다. 페이지를 새로 고칠 때 col2 값을 읽고 document.getElementById를 반복합니다. .(col2).appendChild(document.getElementById(col1_2))는 디스플레이 레이아웃의 결과를 구현합니다. 헤헤! 제가 말한 내용이 명확한지 아닌지는 모르겠지만, 아래 코드를 보면 명확할 것입니다. 자, 말도 안되는 소리는 그만하고 구현된 코드를 살펴보겠습니다! !
먼저 드래그한 기록을 저장해야 하는데, 하나는 데이터베이스를 통해, 다른 하나는 쿠키를 통해 저장합니다. 다음은 쿠키 클래스입니다
자, 이제 이것을 사용하여 드래그 결과를 저장하세요. 물론 결과를 onmouseup 이벤트에 저장하려면 마우스를 놓았을 때만 드래그가 끝났음을 의미하므로 onmouseup 이벤트에 다음 코드를 추가합니다.
//------- -- ---------------
var cook = new CookieClass()
cook.expires =1;//1분 동안 유효합니다
//-- --- ----------
var DragContainer=["col1","col2","col3"];//사용된 열 레이아웃 구현 div의 ID
var dragContainerLen=DragContainer.length
//위 코드에는 설명이 필요하지 않습니다.
//마우스 릴리스
function mouseUp(){
if( dragObject){
if(dragObject.parentNode.style.display=="none") dragObject.parentNode.style.display="block"
dragObject.parentNode.style.border="1px solid #FFCC66" ;
tmpDiv.style.display="none";
for(var m=0;m
var colDiv=document.getElementById(DragContainer[m]); 🎜>var colDivLen =colDiv.getElementsByTagName("div").length
var colSty=colDiv.getAttribute("style");
if(colDivLen>0&&colSty!=null){
colDiv.removeAttribute( "style") ;
break;
}
}
//추가된 코드입니다--------- ---- --------
for(var ed=0;edvar dragConId=DragContainer[ ed]
var dragObj=document.getElementById(dragConId);
dragObj.removeAttribute("style")
var dragDiv=dragObj.getElementsByTagName("div"); {
var dragDivLen=dragDiv.length;
var dragDivIdArr=[];
for(var dd=0;ddvar dragDivId=dragDiv[dd].getAttribute( "id") ;
dragDivIdArr[dd]=dragDivId;
tmp=dragDivIdArr.join("|");
if(tmp=="") tmp=0; >}
cook.setCookie(dragConId,tmp)
}
//추가된 코드입니다--------- ---- ---------------
dragObject=null
false 반환
}
}
추가된 코드는 쿠키에 col1=col2_1|col3_2와 같은 내용을 쓰는 것입니다. 나머지는 페이지가 새로 고쳐지거나 페이지가 로드되기 시작할 때 쿠키를 읽어 드래그 레이아웃을 표시하는 최종 결과를 구현하는 것입니다. 이 코드는 물론 onload
var nl=0;
var dragNull=[]
window.onload=function() {
tmpDiv=document.createElement("div");
tmpDiv.style.cssText = 'position:absolute;display:none;border:1px dotted #FFCC66;'
document.body.appendChild (tmpDiv);//추가된 코드입니다
for(var init=0;initvar initDragId=DragContainer[init]; var initDragContainer=document. getElementById(initDragId) ;
var initDragDiv=cook.getCookie(initDragId);
if(initDragDiv!=0){
var initDragArr=initDragDiv.split("|"); initDragArr.length
for(var k=0;kvar chi=document.getElementById(initDragArr[k])
initDragContainer.appendChild(chi); }
}
else{
dragNull[nl]=initDragId;
nl=nl 1;
}
}
if(nl>0&&nl<3){
var nullLen= dragNull.length;
for(var nn=0;nnvar nullId=dragNull[nn]
var nulldiv=document.getElementById(nullId); 🎜>nulldiv.style.height="20px";
}
}
//추가된 코드입니다
}
그렇습니다. 이해가 안가네요 그냥 코드를 보세요. 어떤 제안이라도 환영합니다. (버그가 있는 것 같고 때로는 작동하지 않는 경우도 있습니다. 시간이 나면 공부하겠습니다.) !