jquery 可拖拽的窗体控件实现代码


Posted in Javascript onMarch 21, 2010

所以要引入JQUERY框架。
把我的这个控件代码放到一个js文件里面直接引入就可以了
控件代码

$.fn.myDrag = function() { 
var self = $(this); 
self.css("position", "absolute"); 
var p = self.position(); 
self.css({ left: p.left, top: p.top }); 
self.mousedown( 
function(event) { 
// debugger; 
self.data("ifDary", "true"); //保存状态,表示是否可以拖拽 
// debugger; 
var selfLeft = event.pageX - parseInt(self.css("left")); //计算出鼠标到这个元素的left 
var selfTop = event.pageY - parseInt(self.css("top")); //计算出鼠标到这个元素的top 
self.data("selfLeft", selfLeft); //保存坐标信息 
self.data("selfTop", selfTop); 
} 
); 
$(document).mouseup( 
function() { 
self.data("ifDary", "false"); 
//防止窗体飞到外面去 
var bWidth = $(window).width(); 
var bHeight = $(window).height(); 
var currentleft = parseInt(self.css("left")); 
var currenttop = parseInt(self.css("top")); 
if (currentleft <= 0) 
currentleft = 0; 
if (currentleft >= bWidth) 
currentleft = bWidth - self.width(); 
if (currenttop <= 0) 
currenttop = 0; 
if (currenttop >= bHeight) 
currenttop = bHeight - self.height(); 
self.css({ left: currentleft, top: currenttop }); 
} 
); 
$(document).mousemove(function(event) { 
var state = self.data("ifDary"); 
if (state && state == "true") { 
var selfLeft = event.pageX - parseInt(self.data("selfLeft")); //计算这个元素的left位置 
var selfTop = event.pageY - parseInt(self.data("selfTop")); 
self.css({ left: selfLeft, top: selfTop }); //设置这个元素的位置 
} 
}); 
return self; 
}

javascript代码
<script src="../script/jquery-1.3.2.js" type="text/javascript"></script> //这个是JQUERY框架,没有的自己搜索去到处都是,一脚踩一堆 
<script src="myDrag.js" type="text/javascript"></script> //这个是我的那个控件代码 
<script type="text/javascript"> 
$(function() { 
$("#div1").myDrag(); 
}); 
</script>

HTML代码
<div id="div1" style="background-color: Red; height: 100px; width: 100px;"> 
点击拖我吧 
</div>
Javascript 相关文章推荐
用js模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
javascript中的继承实例代码
Apr 27 Javascript
有关javascript的性能优化 (repaint和reflow)
Apr 12 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 Javascript
JavaScript代码实现图片循环滚动效果
Mar 19 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
vue环境搭建简单教程
Nov 07 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
详解javascript中的Error对象
Apr 25 Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 #Javascript
javascript qq右下角滑出窗口 sheyMsg
Mar 21 #Javascript
js 居中漂浮广告
Mar 21 #Javascript
jquery checkbox,radio是否选中的判断代码
Mar 20 #Javascript
javascript中的new使用
Mar 20 #Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 #Javascript
js 格式化时间日期函数小结
Mar 20 #Javascript
You might like
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
Jquery 数组操作大全个人总结
2013/11/13 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
python编程羊车门问题代码示例
2017/10/25 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
违反校纪校规检讨书
2014/02/15 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
销售员态度差检讨书
2014/10/26 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
党员年终个人总结
2015/02/14 职场文书
导游词之唐山景点
2019/12/18 职场文书
centos7安装mysql5.7经验记录
2022/05/02 Servers