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

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

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

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    HTML 5 拖放

    拖放(Drag 和 drop)是 HTML5 標準的組成部分。

    拖放

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

    在 HTML5 中,拖放是標準的一部分,任何元素都能夠拖放。

    瀏覽器支持

    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>
    

    親自試一試

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

    設置元素為可拖放

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

    <img draggable="true" />

    拖動什么 - ondragstart 和 setData()

    然后,規定當元素被拖動時,會發生什么。

    在上面的例子中,ondragstart 屬性調用了一個函數,drag(event),它規定了被拖動的數據。

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

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

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

    放到何處 - ondragover

    ondragover 事件規定在何處放置被拖動的數據。

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

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

    event.preventDefault()

    進行放置 - ondrop

    當放置被拖數據時,會發生 drop 事件。

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

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

    代碼解釋:

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

    更多實例

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

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

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

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久国色av免费看| 性短视频在线观看免费不卡流畅| 国产亚洲精品国看不卡| 一级毛片在线免费看| 亚洲AV成人无码久久WWW| 亚洲国产精品无码久久久不卡| 无码国产精品一区二区免费I6| jizz免费观看| 亚洲av无码电影网| 亚洲愉拍99热成人精品热久久| 亚洲天堂免费在线| 免费萌白酱国产一区二区三区| 亚洲人成网站18禁止久久影院 | jizz免费观看视频| 久久狠狠爱亚洲综合影院| 综合亚洲伊人午夜网| 久久不见久久见免费影院| a级毛片在线视频免费观看| 亚洲综合色婷婷在线观看| 亚洲AV综合色区无码一区爱AV| 在线观看免费亚洲| 免费观看激色视频网站bd| 三年片免费高清版| 在线观看亚洲精品专区| 亚洲人成网站18禁止久久影院 | 一二三四在线播放免费观看中文版视频 | 亚洲国产精品xo在线观看| 久久久久国产成人精品亚洲午夜 | 人人鲁免费播放视频人人香蕉| 亚洲国产成人久久99精品| 亚洲人成影院在线无码观看| 最近中文字幕无吗高清免费视频| a级成人免费毛片完整版| 日韩毛片在线免费观看| 亚洲一卡2卡三卡4卡无卡下载| 精品无码一区二区三区亚洲桃色 | 亚洲欧美成人av在线观看| 亚洲成人免费网站| 亚洲国产成人久久综合碰碰动漫3d| 亚洲精品国产高清嫩草影院| 青青青青青青久久久免费观看|