JavaScript如何实现鼠标左键拖拽效果


本文摘自PHP中文网,作者藏色散人,侵删。

实现鼠标左键拖拽效果的两种方式:

方式一:

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

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

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

    <title>Document</title>

    <style>

        .move {

            width: 100px;

            height: 100px;

            background: red;

            border-radius: 50%;

            position:absolute;

            left:0;

            top:0;

        }

    </style>

</head>

<body>

    <div>

    </div>

    <script>

        //制作一个鼠标左键拖拽效果

        var div = document.getElementsByClassName("move")[0];

        var style = window.getComputedStyle(div);

        var divLeft = parseFloat(style.left);

        var divTop = parseFloat(style.top);

        div.onmousedown = function(e){

            if(e.button !== 0){

                return ;//不是鼠标左键,return

            }

            window.onmousemove = function(e){

                divLeft += e.movementX;//距上次鼠标位置的X长度

                divTop += e.movementY;//距上次鼠标位置的Y长度

                div.style.left = divLeft + "px";

                div.style.top = divTop + "px";

            }

            window.onmouseup = window.onmouseleave = function(){

                if(e.button === 0){//鼠标左键

                    window.onmousemove = null;

                }

            }

        }

    </script>

</body>

</html>

相关视频教程推荐:《javascript高级教程

方式二:

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

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

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

    <title>Document</title>

    <style>

        .move {

            width: 100px;

            height: 100px;

            background: red;

            border-radius: 50%;

            position:absolute;

            left:0;

            top:0;

        }

    </style>

</head>

<body>

    <div>

    </div>

    <script>

        //制作一个鼠标左键拖拽效果

        var div = document.getElementsByClassName("move")[0];

        var style = window.getComputedStyle(div);

        div.onmousedown = function(e){

            if(e.button !== 0){

                return ;//不是鼠标左键,return

            }

            var divLeft = parseFloat(style.left);

            var divTop = parseFloat(style.top);

            var divPageX = e.pageX;

            var divPageY = e.pageY;

            window.onmousemove = function(e){

                var disX = e.pageX - divPageX;

                var disY = e.pageY - divPageY;

                div.style.left = divLeft + disX + "px";

                div.style.top = divTop + disY + "px";

            }

            window.onmouseup = window.onmouseleave = function(){

                if(e.button === 0){//鼠标左键

                    window.onmousemove = null;

                }

            }

        }

    </script>

</body>

</html>

相关推荐下载:《文字特效

以上就是JavaScript如何实现鼠标左键拖拽效果的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript可不可以跨平台

javascript如何实现页面跳转

使用canvas实现迷宫游戏

javascript能做哪些特效

javascript实现小型区块链的方法介绍(附代码)

深入了解js中的原始类型(primitive type)

用h5的webgl如何在同一个界面做出json和echarts图表

详谈html中script标签(附代码)

javascript的用途有哪些

javascript有哪几种引入方式

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




打赏

取消

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

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

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

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

评论

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