簡易而又靈活的Javascript拖拽框架(三)

2021-04-20 05:04:28 字數 2069 閱讀 5126

一、開篇

這是這個拖拽系列的第三篇了,第一篇

簡單的介紹了一下這個拖拽框架,第二篇

用這個框架做了乙個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...