var clicked = false;
var Results;
var Canvas;
var isIE;
var pos = new Array();
var CanvasX;
var CanvasY;
var opswitch;
var proClientX;
var proClientY;
var strCoords=''
var txtCoordsClientId
function load( coordsClientId )
{
txtCoordsClientId = coordsClientId;
isIE = (document.all != undefined);
var panel = document.getElementById("Panel");
Canvas = document.getElementById("Canvas");
if(!isIE)
{
Canvas.addEventListener("mousemove",handleMovement,false);
Canvas.addEventListener("mousedown",clickOn,false);
document.addEventListener("mouseup",clickOff,false);
}
else
{
Canvas.onmousemove = handleMovement;
Canvas.onmousedown = clickOn;
document.onmouseup = clickOff;
}
getPos( Canvas );
CanvasX = pos[0];
CanvasY = pos[1];
//alert(CanvasX + "" + CanvasY)
}
function handleMovement(evt) {
var e = (isIE ? window.event : evt);
var target = (isIE ? e.srcElement : e.target);
var x = 0;
var y = 0;
if(clicked && target.id == "Canvas")
{
if( opswitch )
{
opswitch = false;
proClientX = e.clientX;
proClientY = e.clientY;
}
else
{
if( Math.abs(e.clientX - proClientX) < 2 && Math.abs(e.clientY - proClientY ) <2 )
{
mkDiv(proClientX , proClientY , 1, 1 )
}
else
{
mkLin(proClientX, proClientY, e.clientX, e.clientY )
}
proClientX = e.clientX;
proClientY = e.clientY;
}
}
}
function setClick(isClicked) {
clicked = isClicked;
opswitch = isClicked;
}
function clickOn(e) {
setClick(true);
}
function clickOff(e) {
setClick(false);
}
function clearSignature()
{
Canvas.innerHTML = '';
document.getElementById( txtCoordsClientId ).value = '';
strCoords = '';
}
function captureSignature() {
document.getElementById( txtCoordsClientId ).value = strCoords;
strCoords = '';
}
function getPos(obj)
{
var t=obj.offsetTop;
var l=obj.offsetLeft;
while( obj=obj.offsetParent )
{
t+=obj.offsetTop;
l+=obj.offsetLeft;
}
pos[0] = l;
pos[1] = t;
}
function mkLin(x1, y1, x2, y2)
{
if (x1 > x2)
{
var _x2 = x2;
var _y2 = y2;
x2 = x1;
y2 = y1;
x1 = _x2;
y1 = _y2;
}
var dx = x2-x1, dy = Math.abs(y2-y1),
x = x1, y = y1,
yIncr = (y1 > y2)? -1 : 1;
if (dx >= dy)
{
var pr = dy<<1,
pru = pr - (dx<<1),
p = pr-dx,
ox = x;
while ((dx--) > 0)
{
++x;
if (p > 0)
{
mkDiv(ox, y, x-ox, 1);
y += yIncr;
p += pru;
ox = x;
}
else p += pr;
}
mkDiv(ox, y, x2-ox+1, 1);
}
else
{
var pr = dx<<1,
pru = pr - (dy<<1),
p = pr-dy,
oy = y;
if (y2 <= y1)
{
while ((dy--) > 0)
{
if (p > 0)
{
this.mkDiv(x++, y, 1, oy-y+1);
y += yIncr;
p += pru;
oy = y;
}
else
{
y += yIncr;
p += pr;
}
}
mkDiv(x2, y2, 1, oy-y2+1);
}
else
{
while ((dy--) > 0)
{
y += yIncr;
if (p > 0)
{
this.mkDiv(x++, oy, 1, y-oy);
p += pru;
oy = y;
}
else p += pr;
}
mkDiv(x2, oy, 1, y2-oy+1);
}
}
}
function mkDiv(x, y, w, h )
{
var div = document.createElement("div");
div.className = "point";
div.style.left = x;
div.style.top = y;
div.style.width = w;
div.style.height = h;
div.style.clip = 'rect(+0px,+'+ w +'px,+'+h+'px,+0px)';
var absX = x - CanvasX;
var absY = y - CanvasY;
if(isIE)
{
div.attr = absX + "~" + absY + "~" + w + "~" + h ;
}
else
{
div.innerText = absX + "~" + absY + "~" + w + "~" + h ;
}
strCoords = strCoords + absX + "~" + absY + "~" + w + "~" + h + ":";
Canvas.appendChild( div );
}
asp.net在线签名
2星 需积分: 12 67 浏览量
2010-01-12
17:27:12
上传
评论
收藏 102KB RAR 举报
DemonAngle
- 粉丝: 10
- 资源: 6
最新资源
- 基于ThinkPHP的轻量级PHP开发框架设计源码
- 基于CSS的响应式鲜花网站全屏效果设计源码
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈