美文网首页
jquery实现拖拽

jquery实现拖拽

作者: 可惜没如果_4d52 | 来源:发表于2020-08-06 13:37 被阅读0次
<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>drag append</title>
    <script type="text/javascript" src="../js/jquery-3.2.1.js"></script>
    <style type="text/css">

        .inner {
            position: absolute;
            top: 200px;
            left: 200px;
            width: 200px;
            height: 200px;
            border: 1px solid blue;
            z-index: 2;
        }

        .container {
            position: absolute;
            top: 200px;
            left: 1000px;
            width: 400px;
            height: 400px;
            border: 1px solid purple;
        }
    </style>
</head>

<body>
    <div class="inner"></div>
    <div class="container"></div>
    <script type="text/javascript">
        (function ($) {
            $(document).on('mousedown', '.inner', function (e) {
                var positionDiv = $(this).offset();
                var scrollTop = $(window).scrollTop();
                //点击时处于内框位置
                var distenceX = e.pageX - positionDiv.left;
                var distenceY = e.pageY - positionDiv.top + scrollTop;

                $(document).on('mousemove', '.inner', function (e) {
                    var x = e.pageX - distenceX;
                    var y = e.pageY - distenceY;
                    if (x < 0) {
                        x = 0;
                    } else if (x > $(document).width() - $('.inner').outerWidth(true)) {
                        x = $(document).width() - $('.inner').outerWidth(true);
                    }
                    if (y < 0) {
                        y = 0;
                    } else if (y > document.documentElement.clientHeight - $('.inner').outerHeight(true)) {
                        y = document.documentElement.clientHeight - $('.inner').outerHeight(true);
                    }
                    $('.inner').css({
                        'left': x + 'px',
                        'top': y + 'px'
                    });
                });

                $(document).on('mouseup', function (e) {
                    $(document).off('mousemove');
                    var pointEles = $(document.elementsFromPoint(e.pageX, e.pageY)),
                        inner = $('.inner');
                    if ([...pointEles].find(function (item) {
                        return $(item).hasClass('container');
                    })) {
                        $(document).off('mousedown')
                        inner.remove();
                        $('.container').append(inner.css({
                            top: '100px',
                            left: '100px'
                        }));
                    }
                });
            });
        })(jQuery);

    </script>
</body>

</html>

相关文章

  • POS-2017

    拖拽排序功能 实现方法: 使用jquery的Sortable功能可以实现拖拽功能 index页面 html部分 商...

  • jQuery 实现拖拽

    前一段时间写过一个js原生方法实现拖拽,现在用jQuery再来实现以下。其实,原理都是一样的。下面,我们来看代码。

  • jquery实现拖拽

  • 禁止用户拖拽图片或文件到窗口

    在做文件上传功能的时候,如果没有做响应用户拖拽文件的功能的话,建议先禁用拖拽功能。 实现代码: jquery版本(...

  • Controller路由图表拖拉实现

    基于jsPlumb实现的可拖拽自定义流程图[https://www.jq22.com/jquery-info233...

  • jQuery拖拽

    思路 父盒子相对定位,子元素,也就是被拖拽的元素绝对定位 当鼠标在子元素中按下时,绑定鼠标移动事件,根据鼠标位置改...

  • jquery-ui实现拖拽、缩放

    项目需要拖拽draggable()、缩放resizable效果用jquery-ui插件 1.引进jquery-ui...

  • jQuery-File-Upload文档翻译(插件说明)

    jQuery File Upload Plugin 演示 演示地址 说明 本jQuery插件支持多文件上传,拖拽文...

  • HTML5拖拽drag

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

  • 拖拽API

    实现拖拽效果 目前实现拖拽效果 HTML5拖拽 源元素事件例子 目标元素事件 从本地拖放图片到页面中 实现拖拽

网友评论

      本文标题:jquery实现拖拽

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