H5拖动事件复习

定义和用法

ondrag 事件在元素或者选取的文本被拖动时触发。

拖放是 HTML5 中非常常见的功能。 更多信息可以查看我们 HTML 教程中的 HTML5 拖放。

注意: 为了让元素可拖动,需要使用 HTML5 draggable 属性。

提示: 链接和图片默认是可拖动的,不需要 draggable 属性。

在拖放的过程中会触发以下事件:

    • 在拖动目标上触发事件 (源元素):

      • ondragstart - 用户开始拖动元素时触发
      • ondrag - 元素正在拖动时触发
      • ondragend - 用户完成元素拖动后触发
  • 释放目标时触发的事件:

    • ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
    • ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
    • ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
    • ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

注意: 在拖动元素时,每隔 350 毫秒会触发 ondrag 事件。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>拖动事件</title>
        <meta charset="utf-8">
        <style>
            .box{
                width: 200px;
                height: 100px;
                border: 1px solid #c0a;
                margin: 20px;
                float: left;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <p id="p"
            draggable="true"
            ondragstart="dragStart(event)"
            ondrag="drag(event)"
            ondragend="dragEnd(event)"
            >
            要拖动的内容</p>
        </div>
        <div class="box"
            ondragenter="dragEnter(event)"
            ondragleave="dragLeave(event)"
            ondragover="dragOver(event)"
            ondrop="drop(event)"
            id="dropBox"
        ></div>
        <script>
        //event事件对象,事件绑定在谁身上就是谁
        var log = console.log;
        function dragStart(event){
            //开始拖动时触发,事件对象是拖动元素本身
            log(`dragStart`,event)
        }
        function drag(event){
            //拖动中触发 ondrag事件每350毫秒触发一次
            //log(‘drag‘,event)
        }
        function dragEnd(event){
            //拖动结束时触发
            log(‘dragEnd‘,event)
        }
        function dragEnter(event){
            //拖动的元素进入放置的目标时触发, 事件对象是目标元素
            log(‘dragEnter‘,event)
        }
        function dragLeave(event){
            //离开时触发
            log(‘dragLeave‘,event)
        }
        function dragOver(event){
            event.preventDefault();
            //log(‘dragOver‘,event)
        }
        function drop(event){
            event.preventDefault();
            log(‘drop‘,event)
            var p = document.querySelector(‘#p‘);
            var dropBox = document.querySelector(‘#dropBox‘);
            dropBox.appendChild(p)
        }
        </script>
    </body>
</html>

原文地址:https://www.cnblogs.com/lguow/p/12234324.html

时间: 2025-01-18 15:22:48

H5拖动事件复习的相关文章

事件-拖动事件

本章节讲述的是拖动事件.具体看下面的代码 drag.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="drag.js" type="text/javascript"></script> &l

运用HTML5原生拖动事件(drag)实现拖动效果

拖动效果相信很多朋友都自己写过,不管你用原生JS还是Jquery要实现起来也很简单,但是今天我想介绍的是运用HTML5标准中定义的原生拖动事件实现拖动效果. 一.背景: 其实说是HTML5标准定义,其实最早在IE4中就有拖放功能的API,只是在IE4中,网页中只有两种对象可以拖放:图像和某些文本.并且在IE4中唯一有效的放置目标是文本框.到了IE5.5,拖放功能得到了扩展,让网页中的任何元素都可以拖放.最终HTML5以IE的实力为基础制定了拖放规范.FF3.5+,Safari3+和Chrome根

IIViewDeckController拖动事件与百度地图拖动事件冲突

在使用第三方(IIViewDeckController)的侧边栏和百度地图同时使用时.发现百度地图的拖动事件被侧边栏截取了,导致拖动地图时地图移动缓慢,几乎无法滑动.在网上苦苦搜寻了解决方案,最终搜索到比较靠谱的http://www.cocoachina.com/bbs/read.php?tid-252890-page-2.html链接里面11楼的评论.但是我按照他的办法添加代码,在我这边还是没有效果.于是我就在IIViewDeckController第三类里面去找- (BOOL)gesture

Android长按及拖动事件探究

Android中长按拖动还是比较常见的.比如Launcher中的图标拖动及屏幕切换,ListView中item顺序的改变,新闻类App中新闻类别的顺序改变等.下面就这个事件做一下分析. 就目前而言,Android中实现长按事件响应有几种方式,包括: 设置View.OnLongClickListener监听器 通过GestureDetector.OnGestureListener间接获取长按事件 实现View.OnTouchListener,然后在回调中通过MotionEvent判断是否触发了长按

javascript中区分鼠标单击和拖动事件

在javascript中,一般的DOM元素如div,都有onmousedown.onmousemove.onmouseup这3个鼠标事件. <div id="div1" onmousedown="down();" onmouseup="up();" onmousemove="move();"></div> 当鼠标在div1上移动或者按下左键拖动的时候,都会触发onmousemove事件.如何区分这2种事

JS =&gt;处理单击事件与拖动事件并存

使用click事件,很难确定在拖动开始和结束的时候触发,所以使用了onmouseup(释放鼠标的时候),释放鼠标的时候,即在拖动还未结束,但是准备处理的阶段,此时mouseButtonFlag按照逻辑来说应该是true,即不会触发绑定的事件. 1.将click转为使用onmouseup事件 2.添加mouseButtonFlag对象,判断是否拖拽情况,用以处理是否触发鼠标释放(点击)事件 (这个是篇sortable的参数说明的文章,作者xpsharp,http://blog.csdn.net/x

【转】禁止seekbar的拖动事件

原文网址:http://blog.csdn.net/ansionnal/article/details/8229801 当然是可以的! 其实是 onTouchEvent 事件时,不让他传递事件就行了!来个简单的自定义控件 package shuixian.jing.listview; import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import a

h5触摸事件-判断上下滑动

// 判断上下滑动 var startX = 0, startY = 0; function touchStart(evt){ try{ var touch = evt.touches[0], //获取第一个触点 x = Number(touch.pageX), //页面触点X坐标 y = Number(touch.pageY); //页面触点Y坐标 //记录触点初始位置 startX = x; startY = y; }catch(e){ console.log(e.message) } }

android Launcher hotseat上图标拖动事件触动的时间

将 LauncherApplication.java 中的 sLongPressTimeOut 值改大 原值为 300 可以将它改为 600或者合适的timeout 值