jquery的拖拽

这里总结一下jquery的拖拽,分为侧边栏选项的拖拽和侧边栏整体的拖拽,下边写了一个小demo,另外包含了页面右键选项

实现代码:

下面引入的cdn解决侧边栏拖动

<script src="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>

下面引入的cdn解决鼠标右键选项事件

<script src="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.ui.position.min.js"></script>
<link href="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.css" rel="stylesheet">

代码:

<body>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.ui.position.min.js"></script>
    <link href="https://cdn.bootcdn.net/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.css" rel="stylesheet">
    <script src="https://cdn.bootcdn.net/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>
    <div class="main">
        <div class="left">
            <div class="dragarea">拖拽区域</div>
            <ul class="ul1">
                <li draggable="true">选项一</li>
                <li draggable="true">选项二</li>
                <li draggable="true">选项三</li>
                <li draggable="true">选项四</li>
            </ul>
        </div>
        <div class="box">
            <ul class="ul1">
            </ul>
        </div>
    </div>
    <script>
    var sign=''
    // 拖拽开始
    $(document).on('dragstart','.left .ul1 li',function (e){
        console.log("拖拽开始")
        sign=$(e.target)
    })
    // 允许向box拖放
    $(document).on('dragover', '.box', function (e){   
        e.preventDefault();         //阻止浏览器默认动作
        console.log("允许向box拖放")
    });
    // 向box拖放
    $(document).on('drop','.box',function (e){
        e.stopPropagation();        //阻止事件冒泡
        $(".box .ul1").append(sign)
        console.log('向box释放完成')
    })
    // 侧边栏右键菜单弹出对话框
    $(function() {
        $.contextMenu({
            selector: '.left',        //只能在指定元素内右键
            items: {
                "add": {name: "添加", icon: "add",callback:function(){
                    // 执行函数
                    console.log("您点击了添加按钮")
                }},
                "delete": {name: "删除", icon: "delete"},
                "sep1": "---------",
                "quit": {name: "退出", icon: function(){
                    return 'context-menu-icon context-menu-icon-quit';
                }}
            }
        });
    });
    // 侧边栏拖拽开始
    $(".left").draggable({
        disabled: false,//如果该值设置为true,拖动特效将被禁用。默认值为false
        cursor: 'move',//指定在做拖拽动作时,鼠标的CSS样式
        opacity: .85,//当拖动时,拖动助手元素的不透明度
        handle: '.dragarea',//只能在指定元素内拖动
        drag: function (event, ui) {
            $(this).css({ "height": "90%", "width": "180px","border":"none" })
        },//当鼠标在拖动过程中移动时触发。
        start: function (event, ui) { },//当拖动开始时触发。
        stop: function (event, ui) {
            if (window.innerWidth < $(this).offset().left + 245) {        //处理吸附页面右边栏
                $(this).css({ "height": "100%", "width": "200px", "opacity": "1", "top": "0", "right": "0", "left": "auto","border-left":"1px solid #999" })
            } else if ($(this).offset().left - 13 < 0) {        //处理吸附页面左边栏
                $(this).css({ "height": "100%", "width": "200px", "opacity": "1", "top": "0", "left": "0","border-right":"1px solid #999", })
            } else {        //处理悬浮在页面上
                $(this).css({ "height": "90%", "width": "180px","opacity": ".85","border":"none" });
            }
        }//当拖动停止时触发。
    });
    </script>


</body>

参考:jQuery.draggable 参数详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未语君安然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值