웹 프론트엔드 JS 튜토리얼 JQuery 정렬 가능 효과를 모방합니다. 코드가 잘못되었지만 look_javascript 기술을 사용할 가치가 있습니다.

JQuery 정렬 가능 효과를 모방합니다. 코드가 잘못되었지만 look_javascript 기술을 사용할 가치가 있습니다.

May 16, 2016 pm 06:42 PM
jquery

코드 복사 코드는 다음과 같습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<제목>
模仿JQuery sortable效果
</title>
<style type="text/css">
ul
{
너비 :200px;
목록 스타일 유형:없음;
여백:0px;
패딩:0px;
}

{
높이: 100px; 너비: 202px
}
</style>

<script type="text/javascript">
var sortableDoubleUl=
{
offsetYInsertDiv:document.all?-10:-3,
srcUL:false,
leftUL:"leftUL",
rightUL:"rightUL",
moveableUL:false,
moveCounter:-1,
srcLI:false,
srcNextSibling:false,
leftPosOfLeftUL:false,
widthOfLeftUL:false,
leftPosOfRightUL:false,
widthOfRightUL:false,
insertDiv:false,
insertAsFirstNode:false,
descElement:false,
timer:10,
init:function()
{
this.leftUL = document.getElementById(this.leftUL);//<ul id="arrangableNodes">
this.rightUL= document.getElementById(this.rightUL);//<ul id="ul2">
var moveableUL= document.createElement('UL');
var moveableDiv=document.createElement("DIV");
moveableDiv.appendChild(moveableUL);
moveableDiv.style.position="절대";
document.body.appendChild(moveableDiv);
this.moveableUL =moveableUL;
var insertDiv=document.createElement("DIV");
insertDiv.style.position="절대";
insertDiv.style.display="없음";
document.body.appendChild(insertDiv);
insertDiv.innerHTML="<img src='../images/insert.gif'/>";
this.insertDiv =insertDiv;
this.leftPosOfLeftUL =this.getAbsoluteLeftPos(this.leftUL);
this.leftPosOfRightUL=this.getAbsoluteLeftPos(this.rightUL);
this.insertDiv.style.left = this.leftPosOfLeftUL - 5 'px';
this.widthOfLeftUL= this.leftUL.offsetWidth;
this.widthOfRightUL=this.rightUL.offsetWidth;
var leftLi =this.leftUL.getElementsByTagName('LI');
for(var i=0;i{
leftLi[i].onmousedown = this.initMoveNode;
//불법한 문자
leftLi[i].onselectstart = this.cancelEvent;
}
var rightLi =this.rightUL.getElementsByTagName('LI');
for(var i=1;i<rightLi.length-1;i )
{
rightLi[i].onmousedown = this.initMoveNode;
//불법문자
rightLi[i].onselectstart = this.cancelEvent;
}
document.documentElement.onmouseup =this.NodeStopMove;
document.documentElement.onmousemove =this.NodeMove;
document.documentElement.onselectstart = this.cancelEvent; <… = srcObj.offsetTop;
while((srcObj = srcObj.offsetParent) != null)
{
returnValue = srcObj.offsetTop;
}
return returnValue;
},
getAbsoluteLeftPos:function(srcObj)//获取控件距文档底부적绝对位置
{
//如果父元素의 위치는 상대적인 위치가 아니며 절대적인 위치가 아닙니다.向上找直到본체
var returnValue = srcObj.offsetLeft;
while((srcObj = srcObj.offsetParent) != null)
{
returnValue = srcObj.offsetLeft;
}
return returnValue;
},
initMoveNode:function(e)//当鼠标按下LI时初始化LI节点
{
//clearMovableDiv();
if(document.all)
{
e = 이벤트;
}
//每次初始化节点时将其清0
sortableDoubleUl.moveCounter=0;
sortableDoubleUl.srcLI=this;
sortableDoubleUl.srcUL=this.parentNode;
if(this.nextSibling)
sortableDoubleUl.srcNextSibling =this.nextSibling;
그 외 sortableDoubleUl.srcNextSibling = false;
sortableDoubleUl.moveNodeByTimer();
sortableDoubleUl.moveableUL.parentNode.style.left = e.clientX 'px';
sortableDoubleUl.moveableUL.parentNode.style.top = e.clientY 'px';
거짓을 반환합니다.
},
moveNodeByTimer:function ()
{
if(this.moveCounter>=0 && this.moveCounter<10)
{
this.moveCounter = this.moveCounter 1 ;
setTimeout('sortableDoubleUl.moveNodeByTimer()',this.timer);
}
if(this.moveCounter>=10)
{
this.moveableUL.appendChild(this.srcLI);
}
},
NodeMove:function(e)
{
if(document.all)e = 이벤트;
//当前选中时间不到时不可移动
if(sortableDoubleUl.moveCounter<10)return;
if(document.all && sortableDoubleUl.moveCounter>=10 && e.button!=1 && navigator.userAgent.indexOf('Opera')==-1){
alert("비微软&&超过移动时间");
sortableDoubleUl.NodeStopMove();
}
//현재 이동하려는 UL의 위치는 마우스 위치를 따릅니다.
sortableDoubleUl.moveableUL.parentNode.style.left = e.clientX 'px'
sortableDoubleUl.moveableUL.parentNode.style.top; = e.clientY 'px';//임시 변수는 마우스의 시작 Y축 위치를 저장합니다.
var tmpY = e.clientY
var tmpX =
sortableDoubleUl; insertDiv.style.display='none';
sortableDoubleUl.descElement = false;
//window.status=tmpX ":" tmpY "ul1left:" leftPosArrangableNodes "|" (leftPosArrangableNodes widthArrangableNodes) "|" ( leftPosArrangableNodes2 widthArrangableNodes2);
if(tmpX>sortableDoubleUl.leftPosOfLeftUL&&tmpX<(sortableDoubleUl.leftPosOfLeftUL sortableDoubleUl.widthOfLeftUL))
{
var leftLI =sortableDoubleUl.leftUL.getElements ByT agName('LI');
sortableDoubleUl.insertDiv.style.left = (sortableDoubleUl.leftPosOfLeftUL sortableDoubleUl.offsetYInsertDiv) 'px';
for(var i=0;i<leftLI.length;i )
{
// LI의 TOP 위치를 가져옵니다.
var topPos =sortableDoubleUl.getAbsoluteTopPos(leftLI[i]);
//LI의 원래 높이를 가져옵니다.
var tmpHeight = leftLI[i].offsetHeight; (i==0)
{
if(tmpY<=topPos && tmpY>=topPos-5)
{
sortableDoubleUl.insertDiv.style.top = (topPos sortableDoubleUl.offsetYInsertDiv) 'px ';
sortableDoubleUl.insertDiv.style.display = 'block';
sortableDoubleUl.descElement = leftLI[i];
sortableDoubleUl.insertAsFirstNode =
return; }
if(tmpY&gt ;=topPos && tmpY<=(topPos tmpHeight))
{
sortableDoubleUl.insertDiv.style.top = (topPos tmpHeight sortableDoubleUl.offsetYInsertDiv) 'px'; insertDiv.style.display = 'block';
sortableDoubleUl.insertAsFirstNode = leftLI[i];
sortableDoubleUl.descElement = leftLI[i];
insertAsFirstNode =
}
}
}
else if(tmpX>sortableDoubleUl.leftPosOfRightUL&&tmpX<(sortableDoubleUl.leftPosOfRightUL sortableDoubleUl.widthOfRightUL))
{
var rightLI =sortableDoubleUl.rightUL.getElementsByTagName( '리');
sortableDoubleUl.insertDiv.style.left =(sortableDoubleUl.leftPosOfRightUL sortableDoubleUl.offsetYInsertDiv) 'px'
for(var i=0;i<rightLI.length;i )
{
// LI의 TOP 위치 가져오기
var topPos =sortableDoubleUl.getAbsoluteTopPos(rightLI[i]);
//LI의 원래 높이 가져오기
var tmpHeight = rightLI[i].offsetHeight; (i==0)
{
if(tmpY<=topPos && tmpY>=topPos-5)
{

sortableDoubleUl.insertDiv.style.top = (topPos sortableDoubleUl.offsetYInsertDiv ) 'px';
sortableDoubleUl .insertDiv.style.display = 'block';
sortableDoubleUl.descElement = rightLI[i];
sortableDoubleUl.insertAsFirstNode =
return;
}
if( tmpY>=topPos && tmpY<=(topPos tmpHeight))
{
sortableDoubleUl.insertDiv.style.top = (topPos tmpHeight sortableDoubleUl.offsetYInsertDiv)
sortableDoubleUl.insertDiv.style.display = 'block';
sortableDoubleUl.descElement = rightLI[i];
sortableDoubleUl.insertAsFirstNode = false;
}
}
else
{
return;
}
},
ClearMoveNode:function()
{
this.descElement =
if(sortableDoubleUl; .moveableUL.getElementsByTagName('LI') .length>0)
{
if(sortableDoubleUl.srcNextSibling)
this.srcUL.insertBefore(sortableDoubleUl.srcLI,sortableDoubleUl.srcNextSibling)
else sortableDoubleUl .srcUL.appendChild(sortableDoubleUl.srcLI) ;
}
},
NodeStopMove:function(e)
{
sortableDoubleUl.moveCounter =
sortableDoubleUl.insertDiv.style .display='none';
//대상이 발견된 경우
if(sortableDoubleUl.descElement)
{
var parentUL=sortableDoubleUl.descElement.parentNode
var li = parentUL. getElementsByTagName('LI');
if (sortableDoubleUl.descElement==li[0] && sortableDoubleUl.insertAsFirstNode)
{
if(parentUL==sortableDoubleUl.rightUL)
{
alert ("첫 번째 노드는 문서 초안이어야 합니다.")
sortableDoubleUl.ClearMoveNode();
}
else
{
parentUL.insertBefore(sortableDoubleUl.srcLI,sortableDoubleUl.descElement); 🎜>}
}
else
{
if(sortableDoubleUl.descElement.nextSibling)
{
parentUL.insertBefore(sortableDoubleUl.srcLI,sortableDoubleUl.descElement.nextSibling)
}
else
{
if(parentUL==sortableDoubleUl.rightUL)
{
sortableDoubleUl.ClearMoveNode()
alert("끝 노드는 전송된 공개 문서여야 합니다. ")

}
else
{
parentUL.appendChild(sortableDoubleUl.srcLI);
}
}
}
}
else
{
//찾을 수 없음
alert(" 찾을 수 없음")
sortableDoubleUl.ClearMoveNode()
}
}
};
</script>

</head>
<본문>
<h1>
아래 노드를 배열하세요</h1>

<table style="border:#ccc 1px solid;">
<tr>
<td style="width:2000px;border:#ccc 1px solid;">
<input id="Text1" style="너비:500px; 높이:300px;" 유형="텍스트" />
sfsfa

</td>
<td style="width:400px; border:#ccc 1px solid;">
<div>
<div style="padding: 5px">
<ul id="leftUL" style="height:500px; Overflow:auto;">
<li id="node1">
<img src="imagePre/0004.gif" style="height: 55px; width: 202px" />
</li>
<li id="node2"> <img src="imagePre/0004.gif" style="height: 55px; width: 202px" /></li>
<li id="node3"> <img src="imagePre/0004.gif" style="height: 55px; width: 202px" /></li>
<li id="node4"> <img src="imagePre/0004.gif" style="height: 55px; width: 202px" /></li>
<li id="node5"> <img src="imagePre/0004.gif" style="height: 55px; width: 202px" /></li>
<li id="node6"> <img src="imagePre/0004.gif" style="height: 55px; width: 202px" /></li>
</ul>
</div>
</div>
</td>
<td style="width:400px;width:400px; border:#ccc 1px solid;">
<ul id="rightUL" ​​style="height:500px; Overflow:auto;">
<li id="Li1">
<div>
n11</div>
</li>
<li id="Li2">n12</li>
<li id="Li3">n13</li>
<li id="Li4">n14</li>
<li id="Li5">n15</li>
<li id="Li6">n16</li>
</ul>
</td>
</tr>
</테이블>
</form>

<div align="center">
联系方式:QQ:492006183
MSN:zhang-lizhi@hotmail.com

</div>
<script type="text/javascript">

sortableDoubleUl.init()
</script>
</body>
</html>
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

jQuery 참조 방법에 대한 자세한 설명: 빠른 시작 가이드 jQuery 참조 방법에 대한 자세한 설명: 빠른 시작 가이드 Feb 27, 2024 pm 06:45 PM

jQuery 참조 방법에 대한 자세한 설명: 빠른 시작 가이드

jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? Feb 28, 2024 pm 03:12 PM

jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까?

jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까? jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까? Feb 28, 2024 am 08:39 AM

jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까?

jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. Feb 28, 2024 pm 09:06 PM

jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요.

jQuery를 사용하여 모든 태그의 텍스트 내용 수정 jQuery를 사용하여 모든 태그의 텍스트 내용 수정 Feb 28, 2024 pm 05:42 PM

jQuery를 사용하여 모든 태그의 텍스트 내용 수정

심층 분석: jQuery의 장점과 단점 심층 분석: jQuery의 장점과 단점 Feb 27, 2024 pm 05:18 PM

심층 분석: jQuery의 장점과 단점

jQuery에서 eq의 역할 및 적용 시나리오 이해 jQuery에서 eq의 역할 및 적용 시나리오 이해 Feb 28, 2024 pm 01:15 PM

jQuery에서 eq의 역할 및 적용 시나리오 이해

jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? Feb 29, 2024 am 09:03 AM

jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요?

See all articles