一、開篇
這是這個拖拽系列的第三篇了,第一篇
簡單的介紹了一下這個拖拽框架,第二篇
用這個框架做了乙個tab標籤的拖放。這次用這個拖拽框架做乙個更複雜一點的效果——跨列拖放。就像igoogle和netvibes的個性頁面布局那樣。
code
//------------------------utility------------------------
function
findposx(obj)
} else
if(obj
&&obj.x) curleft
+=obj.x;
return
curleft;
//+ document.body.scrollleft - document.body.clientleft;
}function
findposy(obj)
} else
if(obj
&&obj.y) curtop
+=obj.y;
return
curtop;
//+ document.body.scrolltop - document.body.clienttop;
}var
dragghost
=document.createelement(
"div");
dragghost.style.border ="
dashed 1px #cccccc";
dragghost.style.background ="
white";
dragghost.style.display ="
none";
dragghost.style.margin ="
10px";
varcontainer;
varcolumns =;
//------------------------start here------------------------
window.onload
=function()}
for(
vari=0
;i<
columns.length;i++)
}}}var
isie
=document.all;
//------------------------drag item------------------------
function
dragitem(item)}if
(!handle)
return
;drag.init(handle,item);
item.ondragstart
=function
(left,top,mou***,mousey)
}item.ondrag
=function
(left,top,mou***,mousey)}//
如果columnindex在迴圈中沒有被賦值 則表示當前拖動物件在第一列的左邊
//此時也把它放到第一列
varcolumn
=columns[columnindex];if(
this
.column
!=column)
//然後在判斷放在這一列的什麼位置
varcurrentnode
=null
;for
(vari=
0;i<
this
.column.childnodes.length;i++)
}if(currentnode)
this
.column.insertbefore(dragghost,currentnode);
else
//拖到最下邊 沒有任何乙個元素的上邊距比拖動元素的top大 則新增到列的最後
this
=function
(left,top,mou***,mousey)
}
簡單而又完整的Makefile
剛開始學習makefile是乙個痛苦的過程,從雜亂無章的規則到乙個簡單的makefile再到乙個系統化的makefile不是一蹴而就的事情。今天我就寫乙個簡單的,規範的 相對而言 功能也算齊全的makefile。適合於初學者的makefile。希望對新加入linux的同學們有用 一,原始檔準備 假設...
模式匹配演算法以及KMP的javascript實現
暴力解決 對主串的每乙個字元作為子串開頭,與要匹配的字串進行匹配。對主串作大迴圈,每個字元開頭做t的長度的小迴圈,直到匹配成功或全部遍歷完為止。function index s,t else if j t.length else function getnext t else return next...
WinRT常見而又困擾的問題
1.popup content中的繫結都會失效,之前在stack overflow上看到過類似的問題,自己在開發中也遇到了,始終沒找到原因。解決方案是將原本popup的content全都移到中 2.當你滑鼠點選在text之外的空白處,無背景色的控制項單擊事件會失效,這種情況經常發生在自己寫的temp...