JS面元素拖動遇到的幾個問題,問題在備註裡面

2021-05-27 22:15:09 字數 2815 閱讀 2649

1樓:匿名使用者

上面這個是html5的拖拽api的說明

裡面有你想要的解釋

然後你裡面的一些小問題,我給你說明一下

function dragstart(evt){

evt=evt||window.event;//為什麼用evt而不直接寫dragstart(event)

evt.datatransfer.effectallowed="copy";

//evt.datatransfer.effectallowedd的值

//「none」、「copy」、「copylink」、「copymove」、「link」、

//「linkmove」、「move」、「all」分別是什麼作用?

evt.datatransfer.setdata("text",item.id);

//evt.datatransfer.setdata(format,data)

//中,data是不是指資料的內容,比如evt.datatransfer.setdata("text",item.id)這句話就是把item元素的

//id複製到貼上板上以進行下一步呼叫?

evt=evt||window.event;//為什麼用evt而不直接寫dragstart(event)

這個問題是,在除ie以外的瀏覽器中,evt物件(event的縮寫)是直接通過引數傳遞的變數

在ie中,瀏覽器並沒有把event傳遞給你,而是把它繫結到window.event這個屬性上了

所以在這裡處理的時候,需要做一個判斷,如果存在evt就直接使用evt,否則用window.event

evt.datatransfer.effectallowed="copy";

這個屬性在上面的連結裡面有解釋

evt.datatransfer.setdata("text",item.id);

這個方法的setdata引數的第一個,只支援倆個屬性text , url,

也就是隻能儲存這倆種資料型別

在上面的連結裡面也有詳細的解釋

evt.datatransfer

為了在拖放操作時實現資料交換,這個屬性就是用來儲存一個臨時的資料用的

你可以在拖放動作中,吧資料儲存在這個屬性中,用setdata,然後在處理函式中用getdata

拿到儲存的資料來做處理

整個流程是這樣的

就是把item拖拽到drop上的時候,把item放到drop裡面

首先,給item繫結一個drapstart的拖拽開始事件,需要把item的draggable屬性設定為true

標識這個元素是可以拖拽的

在這個拖拽的動作中(drapstart),把item的id儲存到evt.datatransfer屬性裡面

並且設定這個元素可以執行的放置行為(effectallowed),copy,也就是複製

然後給drop繫結滑鼠的釋放事件(drop)

在這裡取到儲存在evt.datatransfer裡面的item的id

把這個元素放置到drop元素裡面

整體流程就是這樣的

你那裡的target屬性就是drop這個元素了,只不過你的那個貌似是onload方法裡面的一個區域性變數,外面似乎訪問不到,你可以把它的var宣告放在外面就可以了

2樓:匿名使用者

這麼多字,drag,drag,drag

onmousedown

onmousemove

onmouseup

結束拖動...

jquery或js拖動div左右移動

3樓:何宜校

清新自在

");$("#" + str).mousedown(function (event) );

$("#win" + str).mousemove(function (event) );

return false;

});$("#win" + str).mouseup(function () );

return false;

});}

4樓:匿名使用者

(function($)else

if(!_this)

_this.css().hover(function(),function())

_this.mousedown(function(e));

$(document).bind("mousemove",function(ev));

var _x = ev.pagex - x;//獲得x軸方向移動的值var _y = ev.pagey - y;//獲得y軸方向移動的值_this.css();

});});

$(document).mouseup(function());

})};

})(jquery)

$.move($('#moveid'));

adsfasdfadf

任意拖動

5樓:匿名使用者

只需要adsfasdfadf

放到頁面的js前面載入就可以拖拽了,

或者載入【$.move($('#moveid'));】這個方法,放到節點載入完後載入。就可以解決了,方法如下。

$(document).ready(function())

6樓:匿名使用者

以後問問題的時候,你說清楚別人也好回答你,問問題都不負責的態度,回答問題的人自然不樂意搭理.

jquery-ui有一個draggable外掛,你自己去jquery**搜尋下吧.

問網頁製作的幾個問題,網頁製作中會遇到哪些問題

1 2 php和asp一樣,但是有一種叫 分離之類的理念,就是說後臺和前臺 是分開由不同的人來寫,具體php是用模板技術來實現的,實際上就是寫好前臺 再將最終頁面程式生成的變數放進去而已。3 net 的元件也是這樣的,最終會解析為瀏覽器可識別的標籤才行,其實你可以這樣。或者直接。這樣應該可以,asp...

問關於火影忍者的幾個問題

1 兜現在確實很強,連斑都有點感到驚訝。現在的目的是想要佐助,但是不知道他有什麼打算,今後才會揭曉吧!2 長門復活了他來木葉所殺的那些人,不包括他來木葉之前所殺的人。3 兜那個術不是復活,是穢土轉算是個召喚術。至於第六個斑,我覺得很有可能是斑的真身。那個都還沒行動啦!4 自來也已經死了,不會復活了。...

宇宙的幾個問題,問一個宇宙問題

我認為宇宙應是實實在在的宇宙,不可能是一個幻覺或一場夢,也不可能是一個生物的細胞。浩瀚的宇宙應是無邊無際無始無終的,即 宇宙已經包含了所有的一切,根本沒有什麼內外 起源和滅亡問題。無論你朝那個方向延伸下去都應是無窮無盡沒有盡頭的,而不可能被什麼東西所阻擋,這就是無限的宇宙空間。那種認為宇宙是有邊際的...