HTML5拖拽drag

通過(guò)拖拽實(shí)現(xiàn)頁(yè)面元素的位置改變

  1. 實(shí)現(xiàn)拖拽效果
  • 源元素 - 要拖拽的文件
  • 目標(biāo)元素 - 要拖拽到哪里去
  1. 目前實(shí)現(xiàn)拖拽效果
  • 使用原生DOM就能實(shí)現(xiàn) - 最麻煩
  • 使用jQuery的插件
  • HTML5種提供的拖拽功能
  1. HTML5拖拽
  • 源元素事件

       dragStart - 當(dāng)鼠標(biāo)開(kāi)始拖放時(shí)被觸發(fā)
       drag - 當(dāng)鼠標(biāo)拖放過(guò)程中被觸發(fā)
       dragend 當(dāng)鼠標(biāo)拖放結(jié)束時(shí)被觸發(fā)
    
  • 目標(biāo)元素事件

        dragover - 當(dāng)鼠標(biāo)到達(dá)目標(biāo)元素被觸發(fā),會(huì)反復(fù)觸發(fā)
        dragenter - 當(dāng)鼠標(biāo)拖放進(jìn)入到目標(biāo)元素內(nèi)觸發(fā)
        drop - 當(dāng)鼠標(biāo)實(shí)現(xiàn)拖放效果時(shí)被觸發(fā)
    

問(wèn)題:HTML頁(yè)面默認(rèn)不允許拖放,稱之為HTML頁(yè)面的默認(rèn)行為
解決:在dragover的事件中組織默認(rèn)行為即可event.preventDefault();

       dragleave - 當(dāng)鼠標(biāo)離開(kāi)目標(biāo)元素時(shí)觸發(fā)
  • dataTransfer對(duì)象
    • 作用:類似于window系統(tǒng)的剪切板功能
    • 功能:可以將源元素的信息,存儲(chǔ)在這里,提供給目標(biāo)元素
  • 使用事件對(duì)象獲取到dataTransfer對(duì)象
    var trans = event.dataTransfer;

  • 設(shè)置數(shù)據(jù)
    setData(type,data)方法
    type:類型,特指標(biāo)識(shí)(id),一般為字符串
    data:設(shè)置的數(shù)據(jù)內(nèi)容

  • 獲取數(shù)據(jù)
    getData(type);

  • 清除數(shù)據(jù)
    clearData(type)
    所有的數(shù)據(jù)內(nèi)容,存儲(chǔ)在瀏覽器內(nèi)存中,當(dāng)使用完數(shù)據(jù)內(nèi)容時(shí),要清除事件對(duì)象 - 作為事件處理函數(shù)的參數(shù)存在
    DOM底層代碼的默認(rèn)寫(xiě)法就是event,如果直接使用event就可以不穿event參數(shù),這種寫(xiě)法不標(biāo)準(zhǔn)

4.從本地拖拽文件到頁(yè)面中

        var transfer = event.dataTransfer;
    
        //找到拖拽的文件
        var file = transfer.files[0];
    
        //新建文件讀取對(duì)象
        var reader = new FileReader();
    
        //讀取文件
        reader.readAsDataURL(file);
        
        //讀取完以后加載
        reader.onload = function(){
        
          d1.innerHTML = "<img src"+reader.result+">";
        }

5.setDragImage()

       作用:修改拖放過(guò)程中,鼠標(biāo)跟隨的圖片效果
       用法:drag/dragstart等事件
       注意:實(shí)際操作中,該方法幾乎不用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前寫(xiě)過(guò)一篇瀏覽器事件的相關(guān)操作和事件運(yùn)行的原理——JavaScript瀏覽器事件解析。這一篇主要寫(xiě)一些常用的事件...
    faremax閱讀 1,732評(píng)論 0 0
  • 實(shí)現(xiàn)拖拽效果源元素 - 要拖拽的文件目標(biāo)元素 - 要拖拽到哪里去 目前實(shí)現(xiàn)拖拽效果使用原生DOM就能實(shí)現(xiàn) - 最麻...
    不住海邊也喜歡浪閱讀 460評(píng)論 0 0
  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,725評(píng)論 2 10
  • HTML5篇是拖拽學(xué)習(xí)的最后一篇了,O(∩_∩)O哈哈~。! 參考傳送門:http://www.cnblogs.c...
    迷緣火葉閱讀 765評(píng)論 0 3
  • 今天管理跳繩組長(zhǎng),居然讓我和他們一起管理跳繩。 管理跳繩我想一定是個(gè)很有趣的事,可到了到以后,也沒(méi)有那么有趣。有的...
    賈民喆閱讀 387評(píng)論 0 0

友情鏈接更多精彩內(nèi)容