javascript實(shí)現(xiàn)完美拖拽效果
更新時(shí)間:2015年05月06日 10:39:15 投稿:hebedich
javascript實(shí)現(xiàn)的拖拽效果,可以把屏幕上的圖片拖動(dòng)到任意地方,效果平滑,點(diǎn)擊圖片還可以從側(cè)邊展開(kāi)圖片的詳細(xì)信息,非常好的相冊(cè)效果
拖拽的原理
1.獲取距離(鼠標(biāo)的位置-odiv的外邊距)
2.理解什么時(shí)候用onmousemove事件
3.判斷是否過(guò)界
html代碼:
<div id="div1"></div>
css代碼:
#div1{width:100px;height:100px;background:red;position:absolute}
javascript代碼:
window.onload=function(){
var oDiv=document.getElementById("div1");
var x=0;
var y=0;
oDiv.onmousedown=function(ev){
var oEvent=ev||event;
//鼠標(biāo)的橫坐標(biāo)減去div的offsetLeft
x=oEvent.clientX-oDiv.offsetLeft;
//鼠標(biāo)的縱坐標(biāo)減去div的offsetTop
y=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function(ev){
var oEvent=ev||event;
var left=oEvent.clientX-x;
var right=oEvent.clientY-y;
//判斷左邊是否過(guò)界
if(left<0){
left=0;
}
//判斷右邊是否過(guò)界
else if(left>document.documentElement.clientWidth-oDiv.offsetWidth){
left=document.documentElement.clientWidth-oDiv.offsetWidth;
}
//判斷上邊是否過(guò)界
if(right<0){
right=0;
}
//判斷下邊是否過(guò)界
else if(right>document.documentElenment.clientHeight){
right=document.documentElenment.clientHeight-oDiv.offsetHeight;
}
oDiv.style.left=left+"px";
oDiv.style.top=right+"px";
}
document.onmouseup=function(){
//清空document的事件
document.onmousemove=null;
document.onmouseup=null;
}
//解決低版本火狐bug,干掉系統(tǒng)默認(rèn)
return false;
}
}
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
您可能感興趣的文章:
- Javascript實(shí)現(xiàn)重力彈跳拖拽運(yùn)動(dòng)效果示例
- JS實(shí)現(xiàn)的3D拖拽翻頁(yè)效果代碼
- JS拖拽插件實(shí)現(xiàn)步驟
- js實(shí)現(xiàn)簡(jiǎn)單div拖拽功能實(shí)例
- JS+CSS實(shí)現(xiàn)帶有碰撞緩沖效果的豎向?qū)Ш綏l代碼
- javascript實(shí)現(xiàn)10個(gè)球隨機(jī)運(yùn)動(dòng)、碰撞實(shí)例詳解
- javascript制作游戲開(kāi)發(fā)碰撞檢測(cè)的封裝代碼
- JS實(shí)現(xiàn)判斷碰撞的方法
- JavaScript運(yùn)動(dòng)減速效果實(shí)例分析
- JavaScript拖拽、碰撞、重力及彈性運(yùn)動(dòng)實(shí)例分析
相關(guān)文章
如何用JavaScript實(shí)現(xiàn)一個(gè)數(shù)組惰性求值庫(kù)
這篇文章主要介紹了如何用JavaScript實(shí)現(xiàn)一個(gè)數(shù)組惰性求值庫(kù),對(duì)惰性求值感興趣的同學(xué),可以參考下2021-05-05
JavaScript實(shí)現(xiàn)字符串與HTML格式相互轉(zhuǎn)換
這篇文章主要介紹了JavaScript實(shí)現(xiàn)字符串與HTML格式相互轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
20個(gè)拿來(lái)就能用的JavaScript技巧分享
這篇文章主要來(lái)和大家一起探討一下20?種?JavaScript?技巧和竅門,每種技巧和竅門都有通俗易懂的示例,讓我們一起來(lái)提升你的?JavaScript?技能吧2023-10-10
javascript如何實(shí)現(xiàn)360度全景照片問(wèn)題匯總
這篇文章主要為大家詳細(xì)匯總了javascript如何實(shí)現(xiàn)360度全景照片問(wèn)題,感興趣的朋友可以參考一下2016-04-04
嵌入式iframe子頁(yè)面與父頁(yè)面js通信的方法
這篇文章主要介紹了嵌入式iframe子頁(yè)面與父頁(yè)面js通信的方法,實(shí)例分析了嵌入式iframe子頁(yè)面與父頁(yè)面js通信的常用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01

