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 parseInt 函数分析(转)
Mar 21 Javascript
js类的静态属性和实例属性的理解
Oct 01 Javascript
javascript HTML+CSS实现经典橙色导航菜单
Feb 16 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
angular中ui calendar的一些使用心得(推荐)
Nov 03 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 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
1 Tube Radio
2021/03/02 无线电
PHP获取url的函数代码
2011/08/02 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
浅析javascript 定时器
2014/12/23 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
python中尾递归用法实例详解
2015/04/28 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
pycharm实现猜数游戏
2020/12/07 Python
食品营养与检测应届生求职信
2013/11/08 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
员工薪酬激励方案
2014/06/13 职场文书
应届大学生自荐书
2014/06/17 职场文书
党在我心中演讲稿
2014/09/02 职场文书
学习教师法的心得体会
2014/09/03 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python