基于jquery的jqDnR拖拽溢出的修改


Posted in Javascript onFebruary 12, 2011
/* 
* jqDnR - Minimalistic Drag'n'Resize for jQuery. 
* 
* Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net/ 
* Licensed under the MIT License: 
* http://www.opensource.org/licenses/mit-license.php 
* 
* $Version: 2007.08.19 +r2 
* last modified by leegle 2011.02.11 
* fix bug:溢出之后不能回来的,添加在范围内移动 
*/ 
(function($) { 
$.fn.jqDrag = function(h) { return i(this, h, 'd'); }; 
$.fn.jqResize = function(h) { return i(this, h, 'r'); }; 
$.jqDnR = { dnr: {}, e: 0, 
drag: function(v) { 
if (M.k == 'd') { 
//修改的位置 李飞二?一一年二月十一日 14:35:19 
E.css({ left: (M.X + v.pageX - M.pX)<0? 0:(M.X + v.pageX - M.pX)<document.documentElement.clientWidth- M.W?(M.X + v.pageX - M.pX):document.documentElement.clientWidth- M.W, top: (M.Y + v.pageY - M.pY)<0?0:(M.Y + v.pageY - M.pY)<document.documentElement.clientHeight -M.H ?(M.Y + v.pageY - M.pY): document.documentElement.clientHeight- M.H }); 
} 
else {E.css({ width: Math.max(v.pageX - M.pX + M.W, 0), height: Math.max(v.pageY - M.pY + M.H, 0) }); return false;} 
}, 
stop: function() { E.css('opacity', M.o); $(document).unbind('mousemove', J.drag).unbind('mouseup', J.stop); } 
}; 
var J = $.jqDnR, M = J.dnr, E = J.e, 
i = function(e, h, k) { 
return e.each(function() { 
h = (h) ? $(h, e) : e; 
h.bind('mousedown', { e: e, k: k }, function(v) { 
var d = v.data, p = {}; E = d.e; 
// attempt utilization of dimensions plugin to fix IE issues 
if (E.css('position') != 'relative') { 
p = E.position(); 
if (!($.browser.msie && ($.browser.version == "6.0")) && (E.css('position') == 'fixed')) { 
p.top -= $(window).scrollTop(); p.left -= $(window).scrollLeft() 
} 
} 
M = { X: p.left || f('left') || 0, Y: p.top || f('top') || 0, W: f('width') || E[0].scrollWidth || 0, H: f('height') || E[0].scrollHeight || 0, pX: v.pageX, pY: v.pageY, k: d.k, o: E.css('opacity') }; 
E.css({ opacity: 0.8 }); $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop); 
return false; 
}); 
}); 
}, 
f = function(k) { return parseInt(E.css(k)) || false; }; 
})(jQuery);
Javascript 相关文章推荐
javascript 自定义事件初探
Aug 21 Javascript
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
Nov 22 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
Jul 12 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 Javascript
JavaScript实现时间表动态效果
Jul 15 Javascript
webpack配置sass模块的加载的方法
Jul 30 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
javascript异常处理实现原理详解
Feb 17 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
Feb 12 #Javascript
在vs2010中调试javascript代码方法
Feb 11 #Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 #Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
Feb 11 #Javascript
juqery 学习之五 文档处理 插入
Feb 11 #Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 #Javascript
Javascript面向对象之四 继承
Feb 08 #Javascript
You might like
小文件php+SQLite存储方案
2010/09/04 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
php 使用array函数实现分页
2015/02/13 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
django foreignkey(外键)的实现
2019/07/29 Python
wxPython色环电阻计算器
2019/11/18 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
行政申诉状范文
2015/05/20 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript