jQuery 有现成的例子,给你个连接:
http://jquery.org.cn/demo/UI/demos/ui.droppable.html
http://jquery.org.cn/demo/UI/demos/ui.droppable.html
解决方案 »
- 菜鸟求助:如何让文本框不能输入任何东西
- js window.open() 弹出页面 为什么我在IE能用 在遨游浏览器下就不好使了那 有时候能弹出页面 有时候不能
- 这句代码为什么报错?
- ext 表单的提交成功后,无法返回?
- 麻烦大家帮我看看这段js是什么意思,拜托各位了。。
- 《javascript基础教程》和《JavaScript DOM 编程艺术》两本书比较。友情提醒想入门的朋友
- 跨框架传值问题
- 请问:如何才能将我的电脑在已有的Frame中显示? [请教了很多人都没解决]
- 很奇怪的時間問題,大家幫忙看看,在線等(很急)
- 怎样取得mediaPalyer拖动条的时间值
- 换行的区别,简单的问题
- 数据的处理?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
.imgContainer{
width:500px;
height:400px;
background-color:#f0f0ff;
border-color:#0000CC;
border-style:solid;
border-width:1px;
}
.imgContainerSel{
width:500px;
height:400px;
background-color:#f0f0ff;
border-color:#0000CC;
border-style:solid;
border-width:1px;
cursor:crosshair;
}
.btn{
background-color:#0000CC;
width:40px;
height:21px;
margin:2px;
line-height:21px;
text-align:center;
cursor:pointer;
float:left;
}
.pressedBtn{
background-color:#ff0099;
width:40px;
height:21px;
margin:2px;
line-height:21px;
text-align:center;
cursor:pointer;
float:left;
}
#toolBar{
width:500px;
height:25px;
background-color:#0066FF;
}
.tdDiv{
width:0px;
height:0px;
background-color:#00FF66;
position:absolute;
}
.control{
top:500px;
left:500px;
position:absolute;
width:8px;
height:8px;
line-height:2px;
font-size:2px;
background-color:#000000;
cursor:n-resize;
}
</style>
<script type="text/javascript">
//为对象增加事件
function addEvent(obj, evType, fn, useCapture)
{
if(obj.addEventListener)
{
obj.addEventListener(evType, fn, useCapture);
return true;
}
else if(obj.attachEvent)
{
var r = obj.attachEvent("on"+evType, fn);
return r;
}
else
{
alert("不能为该对象增加事件!");
}
}
//
var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
}; //取得滚动条位置
function getScroll()
{
var t, l, w, h;
if (document.documentElement && document.documentElement.scrollTop) {
t = document.documentElement.scrollTop;
l = document.documentElement.scrollLeft;
w = document.documentElement.scrollWidth;
h = document.documentElement.scrollHeight;
} else if (document.body) {
t = document.body.scrollTop;
l = document.body.scrollLeft;
w = document.body.scrollWidth;
h = document.body.scrollHeight;
}
return { top: t, left: l, width: w, height: h };
} //初始化画图板
function initImgEdit()
{
var imgEdit = {};
imgEdit.state = null;
imgEdit.toolBar = $('toolBar');
imgEdit.imgContainer = $('imgContainer');
imgEdit.onSel = function()
{
this.state = 'select';
this.imgContainer.className = 'imgContainerSel';
$('selBtn').className = 'pressedBtn';
}
imgEdit.onPointer = function()
{
this.state = 'pointer';
this.imgContainer.className = 'imgContainer';
$('poinBtn').className = 'pressedBtn';
}
imgEdit.resetState = function()
{
this.state = null;
this.imgContainer.className = 'imgContainer';
$('selBtn').className = 'btn';
$('poinBtn').className = 'btn';
}
return imgEdit;
}
//选区按钮单击事件处理函数
function selBtnClick(eve)
{
imgEdit.resetState();
if(!(imgEdit.state=='select'))
{
imgEdit.onSel();
}
}
//指针按钮单击事件处理函数
function poinBtnClick(eve)
{
imgEdit.resetState();
if(!(imgEdit.state=='pointer'))
{
imgEdit.onPointer();
}
}
//绘图区鼠标左键按下
function imgConLPress(eve)
{
if(imgEdit.state == 'select' && eve.button<2)
{
var scr = getScroll();
$('info').innerHTML = scr.top;
var x = eve.clientX+parseInt(scr.left);
var y = eve.clientY+parseInt(scr.top);
var tdDiv = createTdDiv(x, y);
if(imgEdit.curTd)
{
imgEdit.curTd.style.border = 'none';
imgEdit.curTd.style.cursor = 'auto';
}
imgEdit.curTd = tdDiv;
imgEdit.mousePressed = true;
imgEdit.curTdLeft = x;
imgEdit.curTdTop = y;
}
}
//创建一个单元格
function createTdDiv(x, y)
{
var tdDiv = document.createElement('div');
tdDiv.className = 'tdDiv';
tdDiv.style.left = x;
tdDiv.style.top = y;
tdDiv.className = 'tdDiv';
imgEdit.imgContainer.appendChild(tdDiv);
return tdDiv;
}
//鼠标在绘图区移动
function onEditConMove(eve)
{
var scr = getScroll();
var x = eve.clientX+scr.left;
var y = eve.clientY+scr.top;
var tdDiv = imgEdit.curTd;
if(imgEdit.state == 'select' && imgEdit.mousePressed)
{
tdDiv.style.width = Math.abs(x - imgEdit.curTdLeft);
tdDiv.style.height = Math.abs(y - imgEdit.curTdTop);
}
else if(imgEdit.state == 'pointer' && imgEdit.mousePressed)
{
tdDiv.style.left = x - imgEdit._width;
tdDiv.style.top = y - imgEdit._height;
}
}
//鼠标键松开
function onEditConUp(eve)
{
if(imgEdit.state=='select'&&eve.button<2)
{
imgEdit.mousePressed = false;
if(imgEdit.curTd.offsetWidth<5 || imgEdit.curTd.offsetHeight<5)
{
imgEdit.imgContainer.removeChild(imgEdit.curTd);
}
else
{
addEvent(imgEdit.curTd, 'click', tdDivClick, false);
addEvent(imgEdit.curTd, 'mousedown', tdDivDown, false);
}
imgEdit.curTd = null;
}
else(imgEdit.state == 'pointer' && eve.button<2)
{
imgEdit.mousePressed = false;
}
}
//鼠标在单元格div上单击
function tdDivClick(eve)
{
if(imgEdit.state == 'pointer')
{
if(imgEdit.curTd)
{
imgEdit.curTd.style.border = 'none';
imgEdit.curTd.style.cursor = 'auto';
}
var srcElement = eve.srcElement?eve.srcElement:eve.target;
srcElement.style.border = 'thin dashed black';
srcElement.style.cursor = 'move';
imgEdit.curTd = srcElement;
}
}
//鼠标在单元格按下左键
function tdDivDown(eve)
{
var srcElement = eve.srcElement?eve.srcElement:eve.target;
if(eve.button<2 && imgEdit.state == 'pointer' && imgEdit.curTd && imgEdit.curTd == srcElement)
{
imgEdit.mousePressed = true;
var scr = getScroll();
//鼠标按下时光标相对页面的坐标
var x = eve.clientX+scr.left;
var y = eve.clientY+scr.top;
//div相对页面的坐标
var tdDiv = imgEdit.curTd;
var _x = parseInt(tdDiv.style.left || tdDiv.currentStyle.left);
var _y = parseInt(tdDiv.style.top || tdDiv.currentStyle.top);
//鼠标距div左上角的距离
imgEdit._width = x - _x;
imgEdit._height = y - _y;
}
}
//页面初始化
function pageInit(eve){
window.imgEdit = initImgEdit();
addEvent($('selBtn'), 'click', selBtnClick, false);
addEvent($('poinBtn'), 'click', poinBtnClick, false);
addEvent($('imgContainer'), 'mousedown', imgConLPress, false);
addEvent($('imgContainer'), 'mousemove', onEditConMove, false);
addEvent($('imgContainer'), 'mouseup', onEditConUp, false);
}
addEvent(window, 'load', pageInit, false);
</script>
</head>
<body>
<div id="info"></div>
<div id="imgEdit">
<div id="toolBar">
<div id="poinBtn" class="btn">指针</div>
<div id="selBtn" class="btn">选择</div>
<div></div>
</div>
<div id="imgContainer" class="imgContainer">11</div>
</div>
<br />
<div id="cLeft"></div>
<div id="cRight"></div>
<div id="cUp"></div>
<div id="cDown"></div>
<div id="cLeftUp"></div>
<div id="cLeftDown"></div>
<div id="cRightUp"></div>
<div id="cRightDown"></div>
</body>
</html>
我也正在做,希望对你有帮助