拖拽小插件,可以设置某一部分拖拽,还可以防止点击图片出现黏贴鼠标

本文介绍了一个基于jQuery的拖拽功能实现方案。通过监听鼠标事件,实现了元素的拖动,并提供了可配置的手柄选项。该插件允许用户在页面上自由拖动指定元素,适用于各种需要交互式布局调整的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(function ($) {
    $.fn.extend({
        'drag': function () {
            var $this = this;
            if (arguments.length == 0) {
                this[0].addEventListener('mousedown', down)
            } else {
                arguments[0].hander[0].addEventListener('mousedown', down);
            }

            function down(evt) {
                if (evt.target.tagName == "IMG") return;
                var x_start = evt.clientX;
                var y_start = evt.clientY;
                document.addEventListener('mousemove', move);
                document.addEventListener('mouseup', up);

                function move(evt) {
                    var diffx = evt.clientX - x_start;
                    var diffy = evt.clientY - y_start;
                    $($this).css("left", parseInt($($this).css("left").replace("px", "")) + diffx + "px");
                    $($this).css("top", parseInt($($this).css("top").replace("px", "")) + diffy + "px");
                    x_start = evt.clientX;
                    y_start = evt.clientY;
                    //if (left < 0) {        这一部分可以设置使图片不出框,限制在屏幕可视范围内
                    //    left = 0;
                    //} else if (left > $(window).width() + $(document).scrollLeft - $('#reg').width()) {
                    //    left = $(window).width() + $(document).scrollLeft - $('#reg').width();
                    //}
                    //if (top < $(document).scrollTop) {
                    //    top = $(document).scrollTop;
                    //} else if (top > $(window).height() + $(document).scrollTop - $('#reg')[0].offsetHeight) {
                    //    top = $(window).height() + $(document).scrollTop - $('#reg')[0].offsetHeight
                    //}
                };

                function up() {
                    document.removeEventListener('mousemove', move);
                    document.removeEventListener('mouseup', up);
                }
            }
            return this;
        }
    })

})(jQuery)

//引用

$('#skin').modal('show').center(650, 360).drag({ hander: $('#skin .modal-header') });

 $('#blog').modal('show').center(580, 320).drag();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值