欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

模仿JQuery sortable效果 代碼有錯但值得看看

 更新時間:2009年11月05日 23:55:47   作者:  
模仿JQuery sortable效果 代碼有錯但值得看看,因為時間關(guān)系,需要的朋友可以參考下。
復制代碼 代碼如下:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>
模仿JQuery sortable效果
</title>
<style type="text/css">
ul
{
width :200px;
list-style-type:none;
margin:0px;
padding:0px;
}
li
{
height: 100px; width: 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="absolute";
document.body.appendChild(moveableDiv);
this.moveableUL =moveableUL;
var insertDiv=document.createElement("DIV");
insertDiv.style.position="absolute";
insertDiv.style.display="none";
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.length;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;
},
cancelEvent:function (){return false},//無事件
getAbsoluteTopPos:function(srcObj)//獲取控件距文檔頂部的絕對位置
{
var returnValue = srcObj.offsetTop;
while((srcObj = srcObj.offsetParent) != null)
{
returnValue += srcObj.offsetTop;
}
return returnValue;
},
getAbsoluteLeftPos:function(srcObj)//獲取控件距文檔底部的絕對位置
{
//如果父元素的position不是relative或absolute就會一直向上找直到body
var returnValue = srcObj.offsetLeft;
while((srcObj = srcObj.offsetParent) != null)
{
returnValue += srcObj.offsetLeft;
}
return returnValue;
},
initMoveNode:function(e)//當鼠標按下LI時初始化LI節(jié)點
{
//clearMovableDiv();
if(document.all)
{
e = event;
}
//每次初始化節(jié)點時將其清0
sortableDoubleUl.moveCounter=0;
sortableDoubleUl.srcLI=this;
sortableDoubleUl.srcUL=this.parentNode;
if(this.nextSibling)
sortableDoubleUl.srcNextSibling =this.nextSibling;
else sortableDoubleUl.srcNextSibling = false;
sortableDoubleUl.moveNodeByTimer();
sortableDoubleUl.moveableUL.parentNode.style.left = e.clientX + 'px';
sortableDoubleUl.moveableUL.parentNode.style.top = e.clientY + 'px';
return false;
},
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 = event;
//當前選中時間不到時不可移動
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 = e.clientX;
sortableDoubleUl.insertDiv.style.display='none';
sortableDoubleUl.descElement = false;
//window.status=tmpX+":"+tmpY+"ul1left:"+leftPosArrangableNodes+"|"+(leftPosArrangableNodes + widthArrangableNodes)+"ul2left:"+leftPosArrangableNodes2+"|"+(leftPosArrangableNodes2+widthArrangableNodes2);
if(tmpX>sortableDoubleUl.leftPosOfLeftUL&&tmpX<(sortableDoubleUl.leftPosOfLeftUL +sortableDoubleUl.widthOfLeftUL))
{
var leftLI =sortableDoubleUl.leftUL.getElementsByTagName('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;
if(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 = true;
return;
}
}
if(tmpY>=topPos && tmpY<=(topPos+tmpHeight))
{
sortableDoubleUl.insertDiv.style.top = (topPos+tmpHeight +sortableDoubleUl.offsetYInsertDiv) + 'px';
sortableDoubleUl.insertDiv.style.display = 'block';
sortableDoubleUl.insertAsFirstNode = leftLI[i];
sortableDoubleUl.descElement = leftLI[i];
insertAsFirstNode = false;
return;
}
}
}
else if(tmpX>sortableDoubleUl.leftPosOfRightUL&&tmpX<(sortableDoubleUl.leftPosOfRightUL +sortableDoubleUl.widthOfRightUL))
{
var rightLI =sortableDoubleUl.rightUL.getElementsByTagName('LI');
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;
if(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 = true;
return;
}
}
if(tmpY>=topPos && tmpY<=(topPos+tmpHeight))
{
sortableDoubleUl.insertDiv.style.top = (topPos+tmpHeight +sortableDoubleUl.offsetYInsertDiv) + 'px';
sortableDoubleUl.insertDiv.style.display = 'block';
sortableDoubleUl.descElement = rightLI[i];
sortableDoubleUl.insertAsFirstNode = false;
return;
}
}
}
else
{
return;
}
},
ClearMoveNode:function()
{
this.descElement = false;
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 = -1;
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("首節(jié)點必須是公文起草")
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("末節(jié)點必須是公文發(fā)送")

}
else
{
parentUL.appendChild(sortableDoubleUl.srcLI);
}
}
}
}
else
{
//未找到
alert("未找到");
sortableDoubleUl.ClearMoveNode();
}
}
};
</script>

</head>
<body>
<h1>
Arrange the nodes below</h1>

<table style="border:#ccc 1px solid;">
<tr>
<td style="width:2000px;border:#ccc 1px solid;">
<input id="Text1" style="width:500px; height:300px;" type="text" />
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>
</table>
</form>

<div align="center">
聯(lián)系方式:QQ:492006183
MSN:zhang-lizhi@hotmail.com

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

sortableDoubleUl.init()
</script>
</body>
</html>

相關(guān)文章

  • 使用watch在微信小程序中實現(xiàn)全局狀態(tài)共享

    使用watch在微信小程序中實現(xiàn)全局狀態(tài)共享

    這篇文章主要給大家介紹了關(guān)于如何使用watch在小程序中實現(xiàn)全局狀態(tài)共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用微信小程序具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • JavaScript導出Excel實例詳解

    JavaScript導出Excel實例詳解

    這篇文章主要介紹了JavaScript導出Excel的方法,以實例形式詳細分析了javascript將WEB頁面導出為EXCEL文檔的方法及相關(guān)的技巧說明,對于深入了解javascript編程原理有一定的借鑒價值,需要的朋友可以參考下
    2014-11-11
  • JS簡單設(shè)置下拉選擇框默認值的方法

    JS簡單設(shè)置下拉選擇框默認值的方法

    這篇文章主要介紹了JS簡單設(shè)置下拉選擇框默認值的方法,涉及javascript針對頁面元素的遍歷、查找及設(shè)置技巧,需要的朋友可以參考下
    2016-08-08
  • 微信小程序?qū)崿F(xiàn)留言板

    微信小程序?qū)崿F(xiàn)留言板

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)留言板,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • JavaScript學習筆記之數(shù)組求和方法

    JavaScript學習筆記之數(shù)組求和方法

    這篇文章主要介紹了JavaScript學習筆記之數(shù)組求和方法的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • 學習使用bootstrap的modal和carousel

    學習使用bootstrap的modal和carousel

    這篇文章主要教大家學會用bootstrap的modal和carousel,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 小程序?qū)崿F(xiàn)橫向滑動日歷效果

    小程序?qū)崿F(xiàn)橫向滑動日歷效果

    這篇文章主要介紹了小程序?qū)崿F(xiàn)橫向滑動日歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JS倒計時兩種實現(xiàn)方式代碼實例

    JS倒計時兩種實現(xiàn)方式代碼實例

    這篇文章主要介紹了JS倒計時兩種實現(xiàn)方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項

    springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項

    在使用easyUI做前端樣式展示時,遇到了文件上傳的問題,而且是在彈出層中提交表單,想做到不刷新頁面,所以選擇了使用ajaxFileUpload插件。下面通過本文給大家分享springMVC + easyui + $.ajaxFileUpload實現(xiàn)文件上傳注意事項,需要的朋友參考下吧
    2017-04-04

最新評論