基于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 Event学习第五章 高级事件注册模型
Feb 07 Javascript
jquery实现的蓝色二级导航条效果代码
Aug 24 Javascript
javascript 中的 delete及delete运算符
Nov 15 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
Feb 12 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
Sep 16 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 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 事件机制(2)
2011/03/23 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php生成静态页面的简单示例
2014/04/17 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
在layui框架中select下拉框监听更改事件的例子
2019/09/20 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python的unittest测试类代码实例
2017/12/07 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
python numpy 反转 reverse示例
2019/12/04 Python
python代码如何注释
2020/06/01 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
Python爬虫定时计划任务的几种常见方法(推荐)
2021/01/15 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
大学学习个人的自我评价
2014/02/18 职场文书
学校消防演习方案
2014/02/19 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书