javascript支持firefox,ie7頁面布局拖拽效果代碼
更新時間:2007年12月20日 21:48:18 作者:
javascript 拖拽 頁面拖拽 拖拽效果的頁面 超級拖拽 javascript支持firefox,ie7頁面布局拖拽效果代碼 鼠標(biāo)拖拽
javascript 拖拽JavaScript Google IG Drag Demo,非常棒的拖動,準(zhǔn)備用于F2Blog新Theme的后臺模塊設(shè)置,之間的拖
動
拖拽效果的頁面效果演示地址:http://img.jb51.net/online/tuozhuai/google_drag.htm
加強(qiáng)版效果演示地址:http://img.jb51.net/online/tuozhuai/google_drag2.htm
拖拽原理:
關(guān)于拖拽的基礎(chǔ),可以參考這篇文章,講得非常不錯。
其實(shí)原理很簡單,就是把綁定三個事件:onmousedown , onmousemove , onmouseup。
在鼠標(biāo)點(diǎn)下時(onmousedown)把元素的坐標(biāo)設(shè)置為鼠標(biāo)的坐標(biāo),并把 position 設(shè)置為絕對坐標(biāo)。
在鼠標(biāo)移動時(onmousemove)改變元素坐標(biāo)。
在鼠標(biāo)彈起時(onmouseup)取消綁定的事件,并做后續(xù)操作。
javascript 拖拽下面是關(guān)于仿 google 個性化主頁拖拽效果的一個 Demo (需包含 prototype)。 完整下載包:Google
Drag.rar (19.82 KB ,下載:247次)
總共有四個文件:
google_drag.html
prototype.js
通用拖拽函數(shù) drag.js
仿 google 個性化主頁的拖拽 google_drag.js
google_drag.html 中最后幾行中有個初始化拖拽函數(shù)
window.onload = function(){initDrag();}
必須寫成這樣,如果直接寫成
window.onload = initDrag();
這樣會在 IE 下報(bào)個錯誤:尚未實(shí)現(xiàn)
其他代碼可以直接查看源碼,就幾行注釋。其實(shí)就是用 JavaScript 繪制了 15 個 div,然后設(shè)置它們
class 都為drag_div (后面是通過 className 來判斷元素是否可拖拽),然后把可拖拽的部分的 ID 設(shè)置
元素的 ID 后加個 _h(也可設(shè)置自己為拖拽部分)
drag.js 是一個比較通用的拖拽函數(shù)。里面包含四個最簡單的函數(shù):start_Drag, when_Drag, end_Drag,
after_Drag。這四個函數(shù)只是實(shí)現(xiàn)最基本的拖拽功能,要實(shí)現(xiàn)其他功能可修改或在后面覆蓋掉這些函數(shù)。
google_drag.js 是仿 google 個性化主頁拖拽效果的函數(shù)。它覆蓋了上面說的那個四個函數(shù),實(shí)現(xiàn)比較
高級的效果。
拖拽其實(shí)應(yīng)該還是比較簡單的,實(shí)現(xiàn)完拖拽后就是要用 Ajax 來傳遞拖拽后的位置,改變服務(wù)器端的值,
這樣下次用戶訪問時元素才會位置不變。效果的實(shí)現(xiàn)是非常簡單的,主要是怎么融合到已有的項(xiàng)目中,從
而提高用戶體驗(yàn)。
這個 Demo 有一部分參考的網(wǎng)上的代碼。
在網(wǎng)上還有很多這種例子,不過感覺效率都沒這個高。有一些例子是把所有元素的位置都設(shè)置為
absolute,然后直接修改各個元素的 top 和left來顯示效果,感覺那個不是很通用,那樣的話比如我要
把這個效果修改為一個數(shù)的拖拽,并且記錄各個元素之間的位置,比較麻煩。這個例子中要記錄元素的位
置,只需在拖拽完成后記錄被拖拽元素的 id 以及拖拽到了哪個元素的前面然后傳給服務(wù)器端去修改就可
以了。
Update 2007-01-26 1:22
加了個加強(qiáng)版的,效果請看 Demo。其實(shí)就是加了個函數(shù),讓他保證左上方那個大塊只會有一個元素,如
果超過一個則把后面的擠到下面的第一列去,如果沒有元素則從下面的第一列拿出第一個元素放到左上方
的大塊中,如果下面的第一列沒有元素,則找第二列,第三列。
動
拖拽效果的頁面效果演示地址:http://img.jb51.net/online/tuozhuai/google_drag.htm
加強(qiáng)版效果演示地址:http://img.jb51.net/online/tuozhuai/google_drag2.htm
拖拽原理:
關(guān)于拖拽的基礎(chǔ),可以參考這篇文章,講得非常不錯。
其實(shí)原理很簡單,就是把綁定三個事件:onmousedown , onmousemove , onmouseup。
在鼠標(biāo)點(diǎn)下時(onmousedown)把元素的坐標(biāo)設(shè)置為鼠標(biāo)的坐標(biāo),并把 position 設(shè)置為絕對坐標(biāo)。
在鼠標(biāo)移動時(onmousemove)改變元素坐標(biāo)。
在鼠標(biāo)彈起時(onmouseup)取消綁定的事件,并做后續(xù)操作。
javascript 拖拽下面是關(guān)于仿 google 個性化主頁拖拽效果的一個 Demo (需包含 prototype)。 完整下載包:Google
Drag.rar (19.82 KB ,下載:247次)
總共有四個文件:
google_drag.html
prototype.js
通用拖拽函數(shù) drag.js
仿 google 個性化主頁的拖拽 google_drag.js
google_drag.html 中最后幾行中有個初始化拖拽函數(shù)
window.onload = function(){initDrag();}
必須寫成這樣,如果直接寫成
window.onload = initDrag();
這樣會在 IE 下報(bào)個錯誤:尚未實(shí)現(xiàn)
其他代碼可以直接查看源碼,就幾行注釋。其實(shí)就是用 JavaScript 繪制了 15 個 div,然后設(shè)置它們
class 都為drag_div (后面是通過 className 來判斷元素是否可拖拽),然后把可拖拽的部分的 ID 設(shè)置
元素的 ID 后加個 _h(也可設(shè)置自己為拖拽部分)
drag.js 是一個比較通用的拖拽函數(shù)。里面包含四個最簡單的函數(shù):start_Drag, when_Drag, end_Drag,
after_Drag。這四個函數(shù)只是實(shí)現(xiàn)最基本的拖拽功能,要實(shí)現(xiàn)其他功能可修改或在后面覆蓋掉這些函數(shù)。
google_drag.js 是仿 google 個性化主頁拖拽效果的函數(shù)。它覆蓋了上面說的那個四個函數(shù),實(shí)現(xiàn)比較
高級的效果。
拖拽其實(shí)應(yīng)該還是比較簡單的,實(shí)現(xiàn)完拖拽后就是要用 Ajax 來傳遞拖拽后的位置,改變服務(wù)器端的值,
這樣下次用戶訪問時元素才會位置不變。效果的實(shí)現(xiàn)是非常簡單的,主要是怎么融合到已有的項(xiàng)目中,從
而提高用戶體驗(yàn)。
這個 Demo 有一部分參考的網(wǎng)上的代碼。
在網(wǎng)上還有很多這種例子,不過感覺效率都沒這個高。有一些例子是把所有元素的位置都設(shè)置為
absolute,然后直接修改各個元素的 top 和left來顯示效果,感覺那個不是很通用,那樣的話比如我要
把這個效果修改為一個數(shù)的拖拽,并且記錄各個元素之間的位置,比較麻煩。這個例子中要記錄元素的位
置,只需在拖拽完成后記錄被拖拽元素的 id 以及拖拽到了哪個元素的前面然后傳給服務(wù)器端去修改就可
以了。
Update 2007-01-26 1:22
加了個加強(qiáng)版的,效果請看 Demo。其實(shí)就是加了個函數(shù),讓他保證左上方那個大塊只會有一個元素,如
果超過一個則把后面的擠到下面的第一列去,如果沒有元素則從下面的第一列拿出第一個元素放到左上方
的大塊中,如果下面的第一列沒有元素,則找第二列,第三列。
您可能感興趣的文章:
相關(guān)文章
為JS擴(kuò)展Array.prototype.indexOf引發(fā)的問題探討及解決
Array沒有indexOf方法,這樣在一個數(shù)組中查找某個元素的索引時比較麻煩,于是通過prototype原型擴(kuò)展了Array.prototype.indexOf(),在對數(shù)組進(jìn)行遍歷的時候卻出現(xiàn)了問題2013-04-04js跨域問題之跨域iframe自適應(yīng)大小實(shí)現(xiàn)代碼
前幾天做公司和開心網(wǎng)合作項(xiàng)目的時候 碰到iframe 跨域自適應(yīng)的問題剛開始很迷惑 開心網(wǎng)那邊技術(shù)工程師給我發(fā)了一段這樣子的代碼。2010-07-07JS組件Bootstrap實(shí)現(xiàn)彈出框效果代碼
這篇文章主要介紹了JS組件Bootstrap實(shí)現(xiàn)彈出框效果代碼的相關(guān)資料,對彈出框感興趣的小伙伴們可以參考一下2016-04-04JS實(shí)現(xiàn)鼠標(biāo)移上去顯示圖片或微信二維碼
本文給大家分享一段使用的js代碼實(shí)現(xiàn)鼠標(biāo)移入顯示圖片或微信二維碼樣式,代碼簡單易懂,非常不錯,需要的朋友參考下吧2016-12-12