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 相关文章推荐
javascript 屏蔽鼠标键盘的几段代码
Jan 02 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
JS图片无缝、平滑滚动代码
Mar 11 Javascript
浅谈javascript中return语句
Jul 15 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
javascript常用的设计模式
Feb 09 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 Javascript
React冒泡和阻止冒泡的应用详解
Aug 18 Javascript
JS轻量级函数式编程实现XDM二
Jun 16 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php命名空间学习详解
2014/02/27 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
javascript引导程序
2008/10/26 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
银行竞聘上岗演讲稿
2014/09/12 职场文书
十八大宣传标语
2014/10/09 职场文书
开除员工通知
2015/04/22 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
Vue监视数据的原理详解
2022/02/24 Vue.js