拖拽

作者: 前端许 | 来源:发表于2021-12-03 18:48 被阅读0次

<!DOCTYPE html>

<head>

<title>Document</title>

<style>

        * {

            margin: 0;

            padding: 0;

        }

        .a {

            position: relative;

            width: 600px;

            height: 600px;

            border: 1px solid red;

        }

        .b {

            position: absolute;

            width: 200px;

            height: 200px;

            background-color: blueviolet;

        }

</style>

</head>

<body>

</div>

</div>

<!-- <div class="b"></div> -->

./jquery-1.12.4.js"></script>

./tuozhuai.js"></script>

<script>

      /* 在局部方位内拖拽组件可以使用传参 */

      /* 默认配置 是在document中移动div */

      /* el是传子元素的标签或者类名  box是传父元素的标签或者类名 */

        $('.b').tuozhuai({

            el: '.b',

            box: '.a'

        });

</script>

</body>

</html>

tuozhuai.js

(function () {

    $.fn.extend({

        tuozhuai: function (obj) {

            /* 默认配置 是在document中移动div */

            let o = {

                el:'div',

                box:document

            };

            $.extend(o,obj)

            $(o.el).mousedown(function (e) {

                let event = e || event;

                let l = event.clientX - $(this).offset().left;

                let t = event.clientY - $(this).offset().top;

                $(o.box).mousemove(function (e) {

                    /* 动态的获取移动div的时候的鼠标的位置 */

                    let e2 = e || event;

                    let left = e2.clientX - l;

                    let top = e2.clientY - t;

                    let maxw = $(o.box).width() - $(o.el).width();

                    let maxh = $(o.box).height() - $(o.el).height();

                    if (left < 0) left = 0;

                    if (top < 0) top = 0;

                    if (left > maxw) left = maxw;

                    if (top > maxh) top = maxh;

                    $(o.el).css({ left: left + 'px', top: top + 'px' })

                })

                $(o.box).mouseup(function () {

                    $(o.box).off('mousemove')

                })

            })

        }

    })

})()

相关文章

  • 拖拽操作

    应用: 1.拖拽排序2.拖拽上传3.拖拽裁剪 拖拽流程 确定可拖拽的内容-->开始拖拽-->拖拽过程-->结束拖拽...

  • Html5 + Css 3 文件拖拽上传功能

    拖拽上传文件功能 拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用...

  • 拖拽上传

    拖拽事件 拖拽元素ondrag 应用于拖拽元素,整个拖拽过程都会调用ondragstart应用于拖拽元素,...

  • js:拖拽事件

    拖拽事件 ondragstart当拖拽元素被开始拖拽时,event:拖拽元素。[从操作系统向浏览器拖拽文件不会触发...

  • HTML 5 拖拽

    @(HTML5)[HTML 5拖拽] [TOC] 十三、HTML 5 拖拽 HTML 5 拖拽事件 图片自带拖拽功...

  • JQuery UI 拖拽排序

    禁用拖拽: 启用拖拽:

  • MacOS 开发(十六) : 文件拖拽

    文件拖拽的核心是拖拽目标视图 (DragDestinationView),此方法会检测目标是否可拖拽类型,拖拽文件...

  • HTML5拖拽上传

    传统拖拽效果小demohtml5实现拖拽小demo调查问卷小demo拖拽拼图小demo拖拽上传小demo h5拖拽...

  • HTML5拖拽drag

    通过拖拽实现页面元素的位置改变 实现拖拽效果 源元素 - 要拖拽的文件 目标元素 - 要拖拽到哪里去 目前实现拖拽...

  • 元素拖曳 H5

    拖拽 如何让一个元素变成拖拽元素 draggable=‘true’ ondrag 应用于拖拽元素,整个拖拽过程都会...

网友评论

      本文标题:拖拽

      本文链接:https://www.haomeiwen.com/subject/sermxrtx.html