拖拽API

一春哨、拖拽API

設置對象可以拖動

<img draggable="true" />

事件

dragover有一個默認行為>0!赴背!那就是當dragover觸發(fā)時臭胜,drop會失效!q小K嗜!

    source.addEventListener('dragstart',function(ev){   
        console.log('源對象開始被拖動');
    },false)
   source.addEventListener('drag',function(ev){   
        console.log('源對象被拖動過程中(鼠標可能在移動也可能未移動)');
    },false)
   source.addEventListener('dragend',function(ev){   
        console.log('源對象被拖動結(jié)束');
    },false)

    process.addEventListener('dragenter',function(ev){  
        console.log('目標對象被源對象拖動著進入');
    },false)
    process.addEventListener('dragleave',function(ev){ 
        console.log('源對象拖動著離開了目標對象');
    },false)
   process.addEventListener('dragover',function(ev){  
        console.log('目標對象被源對象拖動著懸停在上方');
    },false)

    target.addEventListener('drop',function(ev){        // drop事件由c元素產(chǎn)生
        console.log('源對象拖動著在目標對象上方釋放/松手');
        ev.preventDefault();
    },false)
    document.ondragover = function(e){e.preventDefault();}

dataTransfer 對象

  • 在所有拖放事件中提供了一個數(shù)據(jù)傳遞對象 dataTransfer浇揩,用于在源對象和目標對象間傳遞數(shù)據(jù)仪壮。

setData()
該方法向 dataTransfer 對象中存入數(shù)據(jù)。接收兩個參數(shù)胳徽,第一個表示要存入數(shù)據(jù)種類的字符串积锅,現(xiàn)在支持有以下幾種:

text/plain:文本文字。
text/html:HTML文字养盗。
text/xml:XML文字缚陷。
text/uri-list:URL列表,每個URL為一行往核。
第二個參數(shù)為要存入的數(shù)據(jù)箫爷。例如:

event.dataTransfer.setData('text/plain','Hello World');

getData()
該方法從 dataTransfer 對象中讀取數(shù)據(jù)。參數(shù)為在 setData 中指定的數(shù)據(jù)種類聂儒。例如:

event.dataTransfer.getData('text/plain');

clearData()
該方法清除 dataTransfer 對象中存放的數(shù)據(jù)虎锚。參數(shù)可選,為數(shù)據(jù)種類衩婚。若參數(shù)為空窜护,則清空所有種類的數(shù)據(jù)。例如:

event.dataTransfer.clearData();

setDragImage()
該方法通過用img元素來設置拖放圖標非春。接收三個參數(shù)柱徙,第一個為圖標元素缓屠,第二個為圖標元素離鼠標指針的X軸位移量,第三個為圖標元素離鼠標指針的Y軸位移量护侮。例如:

var source = document.getElementById('source'),
    icon = document.createElement('img');

icon.src = 'img.png';

source.addEventListener('dragstart',function(ev){
    ev.dataTransfer.setDragImage(icon,-10,-10)
},false)
屬性 描述
dropEffect 表示拖放操作的視覺效果藏研,允許對其進行值的設定。該效果必須在用effectAllowed屬性指定的允許的視覺效果范圍內(nèi)概行,允許指定的值有:none、copy弧岳、link凳忙、move。
effectAllowed 用來指定當元素被拖放時所允許的視覺效果禽炬〗眩可以指定的值有:none、copy腹尖、copyLink柳恐、copyMove、link热幔、linkMove乐设、all、uninitialize绎巨。
files 返回表示被拖拽文件的 FileList近尚。
types 存入數(shù)據(jù)的MIME類型。如果任意文件被拖拽场勤,那么其中一個類型將會是字符串”Files”戈锻。

圖片拖拽到網(wǎng)頁中并讀取

container.ondrop = function(e){
      console.log('客戶端拖動著一張圖片釋放了...')
      //當前的目標對象讀取拖放源對象存儲的數(shù)據(jù)
      //console.log(e.dataTransfer); //顯示有問題
      //console.log(e.dataTransfer.files.length); //拖進來的圖片的數(shù)量
      var f0 = e.dataTransfer.files[0];
      //console.log(f0); //文件對象 File
 
      //從文件對象中讀取數(shù)據(jù)
      var fr = new FileReader();
      //fr.readAsText(f0); //從文件中讀取文本字符串
      fr.readAsDataURL(f0); //從文件中讀取URL數(shù)據(jù)
      fr.onload = function(){
        console.log('讀取文件完成')
        console.log(fr.result);
        var img = new Image();
        img.src = fr.result; //URL數(shù)據(jù)
        container.appendChild(img);
      }
    }
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市和媳,隨后出現(xiàn)的幾起案子格遭,更是在濱河造成了極大的恐慌,老刑警劉巖留瞳,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拒迅,死亡現(xiàn)場離奇詭異,居然都是意外死亡她倘,警方通過查閱死者的電腦和手機坪它,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帝牡,“玉大人往毡,你說我怎么就攤上這事“辛铮” “怎么了开瞭?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵懒震,是天一觀的道長。 經(jīng)常有香客問我嗤详,道長个扰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任葱色,我火速辦了婚禮递宅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苍狰。我一直安慰自己办龄,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布淋昭。 她就那樣靜靜地躺著俐填,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翔忽。 梳的紋絲不亂的頭發(fā)上英融,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音歇式,去河邊找鬼驶悟。 笑死,一個胖子當著我的面吹牛材失,可吹牛的內(nèi)容都是我干的撩银。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼豺憔,長吁一口氣:“原來是場噩夢啊……” “哼额获!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恭应,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤抄邀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昼榛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體境肾,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年胆屿,在試婚紗的時候發(fā)現(xiàn)自己被綠了奥喻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡非迹,死狀恐怖环鲤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情憎兽,我是刑警寧澤冷离,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布吵冒,位于F島的核電站,受9級特大地震影響西剥,放射性物質(zhì)發(fā)生泄漏痹栖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一瞭空、第九天 我趴在偏房一處隱蔽的房頂上張望揪阿。 院中可真熱鬧,春花似錦咆畏、人聲如沸南捂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嚼摩,卻和暖如春钦讳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背枕面。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工愿卒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潮秘。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓琼开,卻偏偏與公主長得像,于是被迫代替她去往敵國和親枕荞。 傳聞我的和親對象是個殘疾皇子柜候,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容