jquery 实现窗口移动
2012-11-12 17:17
267 查看
这个是一个让DOM元素可以拖拽的控件,代码很简单。这个是基于JQUERY开发的 所以要引入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>
控件代码如下:
$.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>
相关文章推荐
- JQuery实现可移动的窗口
- 基于jQuery实现的水平和垂直居中的div窗口
- jQuery实现的Div窗口震动特效
- jquery实现dom元素的移动
- JQuery+JQuery ui实现的弹出窗口+遮罩层+拖动+更改大小~!
- jquery简单实现外部链接用新窗口打开的方法
- 利用js实现遮罩以及弹出可移动登录窗口
- JQuery 实现鼠标移动的动态交替
- jQuery实现网易相册鼠标移动显示隐藏效果
- jQuery实现Select左右复制移动内容
- jQuery实现 注册时选择阅读条款 左右移动
- jquery实现跟随鼠标移动显示页面信息
- jQuery实现可移动(draggable)和可缩放(sizable)网页元素
- JQuery实现鼠标拖动元素移动位置
- jQuery实现下拉框左右移动(全部移动,已选移动)
- js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
- jQuery实现鼠标滑过图片移动特效
- jQuery让控件左右移动的三种实现方法
- 使用Jquery仿模态对话框插件Remodal实现弹出响应窗口