使用js拖拽图标


 window.onload = function () {
        /*
         * 拖拽box1的元素
         *  - 拖拽的流程
         *      1.当鼠标在被拖拽的元素上按下时开始拖拽 onmousedown
         *         2.当鼠标移动时被拖拽的元素跟随鼠标移动 onmousemove
         *         3.当鼠标松开时被拖拽的对象固定到当前位置 onmouseup
         */
        var img01 = document.getElementById("img")
        drag(img01);
    };

    /*
     * 提取一个专门用来设置拖拽的函数
     * 参数,开启拖拽的元素
     */

    function drag(obj) {
        obj.onmousedown = function (event) {

            //设置box1捕获所有鼠标按下的事件
            /*
             * setCapture()
             *  - 只有IE支持,但是在火狐中调用时不会报错
             *         而如果使用chrome调用,会报错
             */
            obj.setCapture && obj.setCapture();


            event = event || window.event
            //div的偏移量,鼠标.clientX-元素.offsetLeft

            //div的偏移量,鼠标.clientY-元素.offsetTop

            var ol = event.clientX - obj.offsetLeft;

            var ot = event.clientY - obj.offsetTop;
            //为document绑定一个onmousemove事件

            document.onmousemove = function (event) {

                event = event || window.event
                //当鼠标移动时被拖拽的元素跟随鼠标移动 onmousemove

                //获取鼠标的坐标
                var left = event.clientX - ol;
                var top = event.clientY - ot;

                //修改box1的位置
                 obj.style.transition="none"
                obj.style.position= "absolute"
                obj.style.left = left + "px";
                obj.style.top = top + "px";

            };


            //为元素绑定一个鼠标松开事件
            document.onmouseup = function () {
                //当鼠标松开时,被拖拽元素固定在当前位置 onmouseup
                //取消document的onmousemove事件

                document.onmousemove = null;
                document.onmouseup = null;
                //当鼠标松开时,取消对事件的捕获
                obj.releaseCapture && obj.releaseCapture();
            };
            /*
             * 当我们拖拽一个网页的内容时,浏览器会默认去搜索引擎中搜索内容
             *   此时会导致拖拽功能的异常,这是浏览器提供的默认行为
             *      如果不希望发生这个行为,则可以通过return false来取消默认行为
             */
            return false;
        };
    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值