html5的drag和drop的用法示例(代码)


本文摘自PHP中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于html5的drag和drop的用法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

5分钟弄清楚html5的drag and drop,及其他监听事件和执行的次序。

示例如下:

984976254-5cad539b97a7d_articlex.png

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

<!DOCTYPE html>

<html>

 

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>5分钟drag and drop简明示例</title>

    <style>

        #draggable {

            width: 200px;

            height: 20px;

            text-align: center;

            background: white;

        }

 

        .dropzone {

            width: 200px;

            height: 20px;

            background: blueviolet;

            margin-bottom: 10px;

            padding: 10px;

        }

    </style>

    <script>

        var dragged;

 

        document.addEventListener("dragstart", function (event) {

            console.log('==========dragstart 开始被拖拽==========一次拖动只执行一次');

            // 保存拖动元素的引用(ref.)

            dragged = event.target;

            // 使其半透明

            event.target.style.opacity = .5;

        }, false);

 

        /* 拖动目标元素时触发drag事件 */

        document.addEventListener("drag", function (event) {

            // console.log('==========drag==========拖拽时会一直监听,直到放下元素');

        }, false);

 

        /* 放置目标元素时触发事件 */

        document.addEventListener("dragover", function (event) {

            // console.log('==========dragover==========拖拽时会一直监听,直到放下元素');

            // 阻止默认动作以启用drop

            event.preventDefault();

        }, false);

 

        document.addEventListener("dragenter", function (event) {

            console.log('==========dragenter 拖曳元素 进入目标元素==========对应着dragleave');

            // 当可拖动的元素进入可放置的目标时高亮目标节点

            if (event.target.className == "dropzone") {

                event.target.style.background = "purple";

            }

 

        }, false);

 

        document.addEventListener("dragleave", function (event) {

            console.log('==========dragleave 拖曳元素 离开目标元素==========对应着dragenter');

            // 当拖动元素离开可放置目标节点,重置其背景

            if (event.target.className == "dropzone") {

                event.target.style.background = "";

            }

 

        }, false);

 

        document.addEventListener("drop", function (event) {

            console.log('==========drop 放下元素==========一次拖动只执行一次,在dragenter前触发');

            // 阻止默认动作(如打开一些元素的链接)

            event.preventDefault();

            // 将拖动的元素到所选择的放置目标节点中

            if (event.target.className == "dropzone") {

                event.target.style.background = "";

                dragged.parentNode.removeChild(dragged);

                event.target.appendChild(dragged);

            }

 

        }, false);

 

        document.addEventListener("dragend", function (event) {

            console.log('==========dragend 结束拖拽==========一次拖动只执行一次');

            // 重置透明度

            event.target.style.opacity = "";

        }, false);

 

    </script>

</head>

 

<body>

    <div>

        <div id="draggable" draggable="true" ondragstart="event.dataTransfer.setData('text/plain',null)">

            这是可以拖拽的DIV

        </div>

    </div>

    <div></div>

    <div></div>

    <div></div>

</body>

 

</html>

【相关推荐:HTML5视频教程】

以上就是html5的drag和drop的用法示例(代码)的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

h5实现获取用户地理定位

html5唤起app的方法

html5/css3 经典案例-无插件拖拽上传图片(一)

如何利用html5 canvas旋转图片?(实例演示)

8个最新炫酷的html5动画应用的图文详解

html5/css3 3d立方体旋转动画经典案例

服务端主动发送数据回客户端在h5里的实现步奏

如何从javascript到typescript?

h5canvas绘制五星红旗的实例讲解

html5中的常见错误用法

更多相关阅读请进入《draganddrop》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...