<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    HTML 5 拖放

    拖放(Drag 和 drop)是 HTML5 標(biāo)準(zhǔn)的組成部分。

    拖放

    拖放是一種常見的特性,即抓取對象以后拖到另一個位置。

    在 HTML5 中,拖放是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖放。

    瀏覽器支持

    Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

    注釋:在 Safari 5.1.2 中不支持拖放。

    HTML5 拖放實例

    下面的例子是一個簡單的拖放實例:

    實例

    <!DOCTYPE HTML>
    <html>
    <head>
    <script type="text/javascript">
    function allowDrop(ev)
    {
    ev.preventDefault();
    }
    
    function drag(ev)
    {
    ev.dataTransfer.setData("Text",ev.target.id);
    }
    
    function drop(ev)
    {
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
    }
    </script>
    </head>
    <body>
    
    <div id="div1" ondrop="drop(event)"
    ondragover="allowDrop(event)"></div>
    <img id="drag1" src="img_logo.gif" draggable="true"
    ondragstart="drag(event)" width="336" height="69" />
    
    </body>
    </html>
    

    親自試一試

    它看上去也許有些復(fù)雜,不過我們可以分別研究拖放事件的不同部分。

    設(shè)置元素為可拖放

    首先,為了使元素可拖動,把 draggable 屬性設(shè)置為 true :

    <img draggable="true" />

    拖動什么 - ondragstart 和 setData()

    然后,規(guī)定當(dāng)元素被拖動時,會發(fā)生什么。

    在上面的例子中,ondragstart 屬性調(diào)用了一個函數(shù),drag(event),它規(guī)定了被拖動的數(shù)據(jù)。

    dataTransfer.setData() 方法設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值:

    function drag(ev)
    {
    ev.dataTransfer.setData("Text",ev.target.id);
    }
    

    在這個例子中,數(shù)據(jù)類型是 "Text",值是可拖動元素的 id ("drag1")。

    放到何處 - ondragover

    ondragover 事件規(guī)定在何處放置被拖動的數(shù)據(jù)。

    默認(rèn)地,無法將數(shù)據(jù)/元素放置到其他元素中。如果需要設(shè)置允許放置,我們必須阻止對元素的默認(rèn)處理方式。

    這要通過調(diào)用 ondragover 事件的 event.preventDefault() 方法:

    event.preventDefault()

    進行放置 - ondrop

    當(dāng)放置被拖數(shù)據(jù)時,會發(fā)生 drop 事件。

    在上面的例子中,ondrop 屬性調(diào)用了一個函數(shù),drop(event):

    function drop(ev)
    {
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
    }
    

    代碼解釋:

    • 調(diào)用 preventDefault() 來避免瀏覽器對數(shù)據(jù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開)
    • 通過 dataTransfer.getData("Text") 方法獲得被拖的數(shù)據(jù)。該方法將返回在 setData() 方法中設(shè)置為相同類型的任何數(shù)據(jù)。
    • 被拖數(shù)據(jù)是被拖元素的 id ("drag1")
    • 把被拖元素追加到放置元素(目標(biāo)元素)中

    更多實例

    來回拖放圖片
    如何在兩個 <div> 元素之間拖放圖像。

    posted on 2014-04-09 17:55 順其自然EVO 閱讀(272) 評論(0)  編輯  收藏 所屬分類: HTML5

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品色午夜免费视频| 免费99精品国产自在现线| 国产色爽免费视频| 中文字幕在线观看亚洲日韩| 国产精彩免费视频| 亚洲一区电影在线观看| 美女视频黄a视频全免费| 亚洲AV无码专区在线亚| 青青视频观看免费99| 亚洲日本VA中文字幕久久道具| 免费可以在线看A∨网站| 中文字幕精品三区无码亚洲| 黄网址在线永久免费观看| 国产AV无码专区亚洲AV麻豆丫| 免费亚洲视频在线观看| 国产成人无码免费看片软件| 亚洲爆乳无码一区二区三区| 99久久99热精品免费观看国产| 亚洲影视一区二区| 日本免费电影一区| yellow视频免费看| 无码乱人伦一区二区亚洲一| 在人线av无码免费高潮喷水| 亚洲国产精品18久久久久久| 免费少妇a级毛片| 久久99免费视频| 亚洲av永久无码嘿嘿嘿| 免费看国产精品麻豆| 国产在线观a免费观看| 亚洲精品**中文毛片| 精品免费国产一区二区三区 | 亚洲AV成人一区二区三区在线看| 女人被弄到高潮的免费视频| 色婷婷综合缴情综免费观看| 国产AV无码专区亚洲精品| 免费H网站在线观看的| 中文字幕视频免费在线观看| 亚洲明星合成图综合区在线| 四虎永久在线精品免费影视| 华人在线精品免费观看| 亚洲中文字幕久久无码|