drag & resize元素的jQuery实现

简介:

有时项目中会遇到需要拖动元素、拖拽调整元素大小的需求。大部分时候都不想自己写一遍,因为已经有很多现成的例子了。例如jqueryui提供的drag和resize。但是仅仅是为了这么小一个功能就引入一个库,真是有点划不来,性价比太低了撒。于是自己实现了一遍,写了两个通用函数,需要的时候直接把他们考到项目中就可以啦。代码很清爽有木有!

  先说元素拖动,其实就是动态改变元素的left值和top值,当然前提是元素必须是绝对定位或者相对定位的。代码如下:

复制代码
function draggable(el){
        el.css('cursor', 'move');
        var eventX, eventY, startX, startY, drag;
        el.on('mousedown', function(event){
            eventX = event.clientX;
            eventY = event.clientY;
            startX = parseInt(el.css('left'));
            startY = parseInt(el.css('top'));
            drag = true;
            if(this.setCapture){this.setCapture();}
        }).on('mouseup', function(event){
            drag = false;
            if(this.releaseCapture){this.releaseCapture();}
        });
        $(document).on('mousemove', function(event){
            if(drag){
                var l = startX + (event.clientX - eventX);
                var t = startY + (event.clientY - eventY);
                el.css({left : l, top : t,});
            }
        }).on('mouseup', function(){
            drag = false;
        });
    }
复制代码

  看一下效果:

  代码放在了runjs.cn上,查看源码请点这里http://runjs.cn/code/jfqpe2lo

  拖拽调整元素大小稍微复杂点,其实原理与拖动元素也差不多,无非是动态改变的属性多了些,包括left、top、width、height。代码有点长就不贴这里了。先看下效果:

  代码放在了runjs.cn上,查看源码请点这里http://runjs.cn/code/ihiqp2pa 

本文转自吕大豹博客园博客,原文链接:http://www.cnblogs.com/lvdabao/p/3847432.html,如需转载请自行联系原作者

相关文章
|
1月前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
16 1
|
4月前
|
前端开发 JavaScript
如何利用jQuery来向一个元素中添加和移除CSS类?
如何利用jQuery来向一个元素中添加和移除CSS类?
31 0
|
1月前
|
前端开发 JavaScript Java
第四章使用jQuery操作DOM元素
第四章使用jQuery操作DOM元素
9 0
|
1月前
|
JavaScript
jQuery操作DOM元素案例
jQuery操作DOM元素案例
10 0
|
1月前
|
JavaScript 索引
jQuery选择器 获取元素的十一种方式
jQuery选择器 获取元素的十一种方式
|
3月前
|
JavaScript 前端开发
jQuery特效函数-第7次课-show、hide等方法有动画效果的显示和隐藏一个元素-附案例-任务
jQuery特效函数-第7次课-show、hide等方法有动画效果的显示和隐藏一个元素-附案例-任务
19 0
|
3月前
|
JavaScript
jQuery事件2-第6次课-给未来的元素绑事件-事件对象-JS盒模型-附案例、任务
jQuery事件2-第6次课-给未来的元素绑事件-事件对象-JS盒模型-附案例、任务
39 0
|
3月前
|
JavaScript
jQuery DOM2-第4次课-从某个元素出发,往上下左右找祖先、后代、兄弟然后对其进行增删改-附资料作业笔记
jQuery DOM2-第4次课-从某个元素出发,往上下左右找祖先、后代、兄弟然后对其进行增删改-附资料作业笔记
25 0
|
3月前
|
JavaScript
jQuery -第3次课-DOM操作元素属性-样式等-附资料、作业
jQuery -第3次课-DOM操作元素属性-样式等-附资料、作业
27 0
|
4月前
|
JavaScript 前端开发
jQuery 第八章(jQuery操作dom元素)
jQuery 第八章(jQuery操作dom元素)
55 0