創作內容

0 GP

用javascript做出拖動物件的效果

作者:カゲオ│2008-05-14 17:53:07│巴幣:0│人氣:1412
有時候我們在逛網站時會看到某些物件可以拖動
以前我也覺得那個不好寫
最近不小心看到一篇文章有教如何去製作
不過那個功能是很強
但有點難,再加上還要配合CSS
但網頁上沒有附
所以到頭來還是得自己去寫
相關網站連結
而我分離出一些程式跟它的教學製作出一個簡單的拖動效果
後續就各人依各人所須再加強功能了
程式如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>拖放功能研究</title>
</head>
<script language="javascript">
document.onmousemove = mouseMove;//指定滑鼠移動時的函式
document.onmousedown = mouseDown;//指定按下滑鼠時的函式
document.onmouseup = mouseUp;//指定放開滑鼠時的函式

var tarObj = null;指定要處理的物件變數

function mouseMove(ev){//設定當滑鼠移動時的做為
ev = ev || window.event;
var mousePos = mouseCoords(ev);
test.innerHTML = "(" + mousePos.x + "," + mousePos.y + ")";//顯示出現在的位置

if (tarObj){//當有物件時設定物件的屬性(會不會動是看這裡)
tarObj.style.position = 'absolute';
tarObj.style.top = mousePos.y;
tarObj.style.left = mousePos.x;
}
}
function mouseCoords(ev){//取得x,y的值
if (ev.pageX || ev.pageY){
return {x:ev.pageX,y:ev.pageY};
}
return {
x: ev.clienX + document.body.scrollLeft - document.body.clientLeft,
y: ev.clienY + document.body.scrollTop - document.body.clientTop
};
}

function mouseDown(ev){//當按下滑鼠時所要做的事
ev = ev || window.event;
var target = ev.target || ev.srcElement;
test.innerHTML = target.id;//顯示所按下物件的名稱
tarObj = target;//將所按下的物件傳給物件變數
}

function mouseUp(){//處理放開滑鼠按鍵時把物件變數設為null
tarObj = null;
}
</script>
<body>
<div id="test"></div>
<div id="item1">item 1</div>
<div id="item2">item 2</div>
<div id="item3">item 3</div>
<div id="item4">item 4</div>
<div id="item5">item 5</div>
<div id="item6">item 6</div>
</body>
</html>

這是我測試階段寫出來一個簡單的移動物件方式
最終做法是要像該網站一樣的效果
接下來是要判斷移動中的物件是否有進入已設定的區域中
來達到物件在固定的位置互相轉移的效果
只要再配合CSS就可以寫出更美觀的效果了
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=660087
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:|javascript|拖動效果|物件移動|

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★itsubasa 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:利用javascript... 後一篇:try again...

追蹤私訊切換新版閱覽

作品資料夾

entering7777喜歡新奇小說的你
「奇幻」、「密室逃脫」、「懸疑燒腦」,居然能結合在一起?現在就來我的小屋看看《凌律遊戲》吧!看更多我要大聲說昨天19:33


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】