基于jquery的用鼠标画出可移动的div


Posted in Javascript onSeptember 06, 2012

具体的原理我就不多说了,直接贴代码。
html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Draw rectangle</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<script src="jquery-1.6.2.min.js" type="text/javascript"></script> 
<script src="jquery.ui.core.js" type="text/javascript"></script> 
<script src="jquery.ui.widget.js" type="text/javascript"></script> 
<script src="jquery.ui.mouse.js" type="text/javascript"></script> 
<script src="jquery.ui.draggable.js" type="text/javascript"></script> 
<link href="catch.css" rel="stylesheet" type="text/css";charset=gb2312/> 
<script src="catch.js" type="text/javascript";charset=gb2312></script> 
<!--[if gte IE 7]> 
<style type="text/css"> 
</style> 
<![endif]--> 
</head> 
<body> 
<!-- header --> 
<div id="header"> 
<label>Draw!</label> 
</div> 
<!-- content --> 
<div id="content"> 
</div> 
<!-- bottom --> 
<div id="bottom"> 
</div> 
</body> 
</html>

css代码:
body 
{ 
font-family: "Helvetica Neue", "Lucida Grande", "Segoe UI", Arial, Helvetica, Verdana, sans-serif; 
margin: 0px; 
} 
#header 
{ 
width:150px; 
margin:0px auto; 
} 
#header label 
{ 
font-size:45px; 
font-weight:bolder; 
} 
#content 
{ 
width:90%; 
height:600px; 
margin:10px auto; 
border:1px solid blue; 
} 
.new_rect 
{ 
opacity: 0.7; 
-moz-opacity: 0.7; 
filter: alpha(opacity=70); 
-ms-filter: alpha(opacity=70); 
background:#A8CAEC; 
border:1px solid #3399FF; 
position:fixed; 
float:left; 
} 
.new_rect:hover{ 
cursor:move; 
} 
.mousedown{ 
-webkit-box-shadow:5px 5px 5px black; 
-moz-box-shadow:5px 5px 5px black; 
box-shadow:5px 5px 5px black; 
z-index:999; 
}

js代码:
////////////////////////////////////////////////////////// 
$(function () { 
//$("div[title=new_rect]").click(function(){alert("click");}); 
//$(".new_rect").draggable(); 
drow_rect("#content"); 
}) 
///////////////////////////////////////////////////////// 
function drow_rect(the_id){//theid表示用作画布的层 
var num=1; 
var x_down=0,y_down=0; 
var new_width=0,new_height=0; 
var x_original=0,y_original=0; 
var original_flag=true,down_flag=false; 
var x_point=0,y_point=0; 
var append_string; 
var MouseDown=function(e){ 
down_flag=true; 
x_down=e.pageX; 
y_down=e.pageY;//记录鼠标的当前坐标 
if(original_flag){//如果是第一次点击,把起始点的坐标记录到 x_original 和 y_original中 
x_original=e.pageX; 
y_original=e.pageY; 
original_flag=false; 
} 
}; 
var MouseMove=function(e){ 
if(down_flag){//鼠标有移动 
x_down=e.pageX; 
y_down=e.pageY; 
x_point=x_original; 
y_point=y_original; 
new_width=x_down-x_original; 
if(new_width<0){//鼠标向左运动 
new_width=-new_width; 
x_point=x_down; 
} 
new_height=y_down-y_original; 
if(new_height<0){ //鼠标向右运动 
new_height=-new_height; 
y_point=y_down; 
} 
$("div[name='"+num+"']").remove();//把前面的层删除,并在后面的代码中生成新的层 
append_string="<div class='new_rect' style='left:"+x_point+"px;top:"+y_point+"px;"+"width:"+new_width+"px;height:" 
+new_height+"px' name='"+num+"' title='第"+num+"个'></div>"; 
$(the_id).append(append_string); 
} 
} 
$(the_id).bind("mousedown",MouseDown); 
$(the_id).bind("mousemove",MouseMove);//事件绑定 
$(the_id).mouseup(function(e){//松开鼠标左键,初始化标志位 
down_flag=false; 
original_flag=true; 
$("div[name='"+num+"']").draggable(); 
$("div[name='"+num+"']").mousedown(function(){ 
$(this).addClass("mousedown");//添加阴影 
$(the_id).unbind("mousedown",MouseDown); 
$(the_id).unbind("mousemove",MouseMove);//取消事件绑定 
}); 
$("div[name='"+num+"']").mouseup(function(){ 
$(this).removeClass("mousedown");//删除阴影 
$(the_id).bind("mousedown",MouseDown); 
$(the_id).bind("mousemove",MouseMove);//事件绑定 
}); 
num++; 
}); 
}

上传一个实例图片:
基于jquery的用鼠标画出可移动的div
Javascript 相关文章推荐
JavaScript可否多线程? 深入理解JavaScript定时机制
May 23 Javascript
jquery中prop()方法和attr()方法的区别浅析
Sep 06 Javascript
js获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
javascript中的取反再取反~~没有意义
Apr 06 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
javascript实现类似超链接的效果
Dec 26 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
Jul 17 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
vuejs简单验证码功能完整示例
Jan 08 Javascript
js防止表单重复提交实现代码
Sep 05 #Javascript
javascript面向对象入门基础详细介绍
Sep 05 #Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 #Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 #Javascript
Javascript中的delete介绍
Sep 02 #Javascript
JS判断当前日期是否大于某个日期的实现代码
Sep 02 #Javascript
Javascript this 的一些学习总结
Aug 31 #Javascript
You might like
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
详解vue 命名视图
2019/08/14 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
女大学生自我鉴定
2013/12/09 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书