2008-05-24 14:09:23 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<title>Draggable - Automated Test Page</title>
|
2008-05-24 22:30:03 +00:00
|
|
|
<script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
|
2008-05-24 14:09:23 +00:00
|
|
|
<script type="text/javascript" src="../../ui/source/ui.core.js"></script>
|
|
|
|
<script type="text/javascript" src="../../ui/source/ui.draggable.js"></script>
|
|
|
|
|
|
|
|
<style type="text/css">
|
|
|
|
|
|
|
|
html, body { height: 100%; }
|
|
|
|
#main { height: 100%; }
|
|
|
|
#drag { width: 200px; height: 200px; background: #eef; }
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
2008-05-24 18:49:23 +00:00
|
|
|
var mouseX = 0, mouseY = 0;
|
2008-05-24 14:09:23 +00:00
|
|
|
|
2008-05-24 20:52:04 +00:00
|
|
|
function trackMouse(e) {
|
|
|
|
if (e.isTrusted !== false) {
|
2008-05-24 18:49:23 +00:00
|
|
|
mouseX = e.pageX;
|
|
|
|
mouseY = e.pageY;
|
|
|
|
}
|
2008-05-24 20:52:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$(function() {
|
|
|
|
|
|
|
|
$(document).bind("mousemove", trackMouse);
|
2008-05-24 14:09:23 +00:00
|
|
|
|
2008-05-24 18:49:23 +00:00
|
|
|
});
|
2008-05-24 14:09:23 +00:00
|
|
|
|
|
|
|
function testMouse(type, el, x, y) {
|
2008-05-24 20:52:04 +00:00
|
|
|
var evt, e = {bubbles: true, cancelable: (type != "mousemove"), view: window, detail: 0,
|
|
|
|
screenX: 0, screenY: 0, clientX: x, clientY: y,
|
|
|
|
ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
|
|
|
|
button: 0, relatedTarget: null, isTrusted: false};
|
|
|
|
if ($.isFunction(document.createEvent)) {
|
|
|
|
evt = document.createEvent("MouseEvents");
|
|
|
|
if ($.isFunction(evt.initMouseEvent)) {
|
|
|
|
evt.initMouseEvent(type, e.bubbles, e.cancelable, e.view, e.detail,
|
|
|
|
e.screenX, e.screenY, e.clientX, e.clientY,
|
|
|
|
e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
|
|
|
|
e.button, e.relatedTarget);
|
|
|
|
} else {
|
|
|
|
evt = document.createEvent("UIEvents");
|
|
|
|
evt.initEvent(type, bubbles, cancelable);
|
|
|
|
$.extend(evt, e);
|
|
|
|
}
|
|
|
|
el.dispatchEvent(evt);
|
|
|
|
} else if (document.createEventObject) {
|
|
|
|
evt = document.createEventObject();
|
|
|
|
$.extend(evt, e);
|
|
|
|
evt.button = 1;
|
|
|
|
el.fireEvent('on' + type, evt)
|
|
|
|
}
|
2008-05-24 14:09:23 +00:00
|
|
|
}
|
2008-05-24 20:52:04 +00:00
|
|
|
function testMouseDown(el, x, y) { testMouse("mousedown", el, x, y); }
|
|
|
|
function testMouseMove(el, x, y) { testMouse("mousemove", el, x, y); }
|
|
|
|
function testMouseUp(el, x, y) { testMouse("mouseup", el, x, y); }
|
2008-05-24 14:09:23 +00:00
|
|
|
|
|
|
|
function draggableTest(el, dx, dy) {
|
2008-05-24 20:52:04 +00:00
|
|
|
|
2008-05-24 14:09:23 +00:00
|
|
|
var findCenter = function(el, offset) {
|
|
|
|
var o = el.offset();
|
|
|
|
return {
|
|
|
|
x: (o.left + (offset || [0, 0])[0] || 0) + el.width() / 2,
|
|
|
|
y: (o.top + (offset || [0, 0])[1] || 0) + el.height() / 2
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
var center = findCenter($(el));
|
|
|
|
var left = center.x;
|
|
|
|
var top = center.y;
|
|
|
|
|
2008-05-24 20:52:04 +00:00
|
|
|
var fakemouse = $('<img src="images/cursor.png" id="fakemouse"/>');
|
|
|
|
var realmouse = $('<img src="images/cursor.png" id="realmouse"/>');
|
|
|
|
if ($.browser.msie && $.browser.version == 6) {
|
|
|
|
fakemouse = $('<div id="fakemouse" style="height:23;width:16;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'images/cursor.png\', sizingMethod=\'scale\');" ></div>');
|
|
|
|
realmouse = $('<div><div id="realmouse" style="height:23;width:16;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'images/cursor.png\', sizingMethod=\'scale\');" ></div></div>');
|
|
|
|
}
|
2008-05-24 18:49:23 +00:00
|
|
|
var mousescreen = $('<div id="mousescreen"/>');
|
2008-05-24 20:52:04 +00:00
|
|
|
|
2008-05-24 14:09:23 +00:00
|
|
|
var testStart = function() {
|
2008-05-24 20:52:04 +00:00
|
|
|
fakemouse.appendTo('body').css({ position: 'absolute', left: mouseX, top: mouseY, zIndex: 5000 });
|
|
|
|
realmouse.appendTo('body').css({ position: 'absolute', left: mouseX, top: mouseY, zIndex: 5000, opacity: 0.1 })
|
2008-05-24 18:49:23 +00:00
|
|
|
.mousedown(function() { return false; });
|
|
|
|
mousescreen.appendTo('body').css({ width: '100%', height: '100%', position: 'absolute', top: 0, left: 0, zIndex: 5000 })
|
|
|
|
.mousemove(function(e) { realmouse.css({ left: e.pageX, top: e.pageY }); return false; })
|
|
|
|
.mousedown(function() { return false; })
|
2008-05-24 20:52:04 +00:00
|
|
|
.mouseup(function() { return false; });
|
|
|
|
(!$.browser.safari && mousescreen.css({ cursor: 'url(images/blank.cur), auto' }));
|
2008-05-24 14:09:23 +00:00
|
|
|
}
|
|
|
|
var testStop = function() {
|
2008-05-24 18:49:23 +00:00
|
|
|
mousescreen.remove();
|
2008-05-24 20:52:04 +00:00
|
|
|
mouseX = realmouse.css("left");
|
|
|
|
mouseY = realmouse.css("top");
|
2008-05-24 18:49:23 +00:00
|
|
|
realmouse.remove();
|
|
|
|
fakemouse.remove();
|
2008-05-24 14:09:23 +00:00
|
|
|
}
|
2008-05-24 20:52:04 +00:00
|
|
|
|
2008-05-24 14:09:23 +00:00
|
|
|
testStart();
|
|
|
|
|
2008-05-24 18:49:23 +00:00
|
|
|
var lastX = null;
|
2008-05-24 20:52:04 +00:00
|
|
|
|
2008-05-24 18:49:23 +00:00
|
|
|
fakemouse
|
2008-05-24 20:52:04 +00:00
|
|
|
.animate({ left: left, top: top }, "fast", function() {
|
2008-05-24 14:09:23 +00:00
|
|
|
testMouseDown(el, left, top);
|
2008-05-24 20:52:04 +00:00
|
|
|
testMouseMove(el, left, top);
|
2008-05-24 14:09:23 +00:00
|
|
|
})
|
|
|
|
.animate({ left: left + dx, top: top + dy }, {
|
2008-05-24 18:49:23 +00:00
|
|
|
speed: "fast",
|
2008-05-24 14:09:23 +00:00
|
|
|
easing: "swing",
|
|
|
|
step: function (xory) {
|
2008-05-24 20:52:04 +00:00
|
|
|
if (!lastX) {
|
|
|
|
lastX = xory;
|
|
|
|
} else {
|
|
|
|
testMouseMove(el, lastX, xory);
|
|
|
|
lastX = null;
|
|
|
|
}
|
2008-05-24 14:09:23 +00:00
|
|
|
},
|
|
|
|
complete: function() {
|
|
|
|
testMouseUp(el, 0, 0);
|
2008-05-24 20:52:04 +00:00
|
|
|
$(this).animate({ left: realmouse.css("left"), top: realmouse.css("top") }, {
|
2008-05-24 18:49:23 +00:00
|
|
|
speed: "fast",
|
2008-05-24 14:09:23 +00:00
|
|
|
complete: function() {
|
|
|
|
testStop();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
});
|
2008-05-24 20:52:04 +00:00
|
|
|
|
2008-05-24 14:09:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(function() {
|
|
|
|
|
|
|
|
$("#drag").draggable();
|
|
|
|
|
|
|
|
$('#begin').click(function(e) {
|
|
|
|
draggableTest($("#drag")[0], 100, 10);
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<div id="main">
|
|
|
|
|
|
|
|
<h1>jQuery UI Draggable - Automated Test</h1>
|
|
|
|
|
|
|
|
<div style="height: 3em;"><button id="begin">Run Test</button></div>
|
|
|
|
|
|
|
|
<div id="drag">
|
|
|
|
Drag me
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|