jquery插件拖动div层学习
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2016-12-11 15:22:55
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery-1.8.1.min.js" type="text/javascript"></script> <title>无标题文档</title> <style> *{ margin:0px; padding:0px;} .box{ width:200px; height:200px; background:#f00;} </style> </head> <body> <div class="box"></div> <script> (function($) { var data={_x:0,_y:0}; $.fn.kldrag = function(options) { var defaults={ 'titleheight':50,//拖拉标题的有效区域高度,为0时整个都可以拉动 'space':true,//是否要占位div 'spacestyle':''//点位空间样式 }; var opts = $.extend(defaults, options); this.bind('mousedown',function(e){ //取元素到页面top和left上的坐标 var xxx=$(this).offset().left; var yyy=$(this).offset().top; //计算鼠标在元素上的坐标并保存状态 data._x=e.pageX-xxx;//鼠标在元素上的x位置 data._y=e.pageY-yyy;//鼠标在元素上的y位置 //判断是不是在拖动的有效范围内 if(opts.titleheight===0 || opts.titleheight>=data._y){ $(this).css({zIndex:1000,position:'absolute',left:xxx+'px',top:yyy+'px'}); //判断是不是要占位div if(opts.space){ $('#divspace').remove(); $(this).after('<div id="divspace" style="z-index:999;position:absolute;left:'+xxx+'px;top:'+yyy+'px;width:'+$(this).outerWidth()+'px;height:'+$(this).outerHeight()+'px;border:dashed 1px #f00;'+opts.spacestyle+'"></div>'); } $(this).css('cursor','move'); } }); this.bind('mousemove',function(e){ //判断是不是在拖动的有效范围内 if(opts.titleheight===0 || opts.titleheight>=data._y){ if(e.which===1){ xx=e.pageX-(data._x);//鼠标在元素上的x位置 yy=e.pageY-(data._y);//鼠标在元素上的y位置 $(this).css({zIndex:1000,position:'absolute',left:xx+'px',top:yy+'px'}); } } }); this.bind('mouseup',function(){ $(this).css('cursor','auto'); $('#divspace').remove(); }); }; })(jQuery); $(function(){ $('.box').kldrag(); }); </script> </body> </html>