<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="no" />
<meta name="viewport" content="user-scalable=no" />
<style>
* {
margin: 0;
padding: 0;
}
#wrapper {
position:relative;
width:800px;
margin:0 auto;
}
#output {
position:relative;
width:100%;
height:96px;
border:1px solid black;
}
.keyboard {
position:relative;
width:100%;
height:250px;
border:1px solid black;
background-color:#ccc;
cursor:pointer;
}
.keyboard ul {
list-style-type:none;
}
.keyboard ul ul {
clear:both;
}
.keyboard ul ul li {
float:left;
position:relative;
width:70px;
height:70px;
margin:1px;
border:1px outset gray;
text-align:center;
line-height:70px;
background-color:#ddd;
-moz-border-radius:5px;
border-radius:5px;
}
.keyboard .swypable {
background-color:#eee;
}
.keyboard ul ul li:hover {
background-color:white;
}
.keyboard .middle {
margin-left:20px;
}
.keyboard .lower {
margin-left:50px;
}
</style>
<script>
function init() {
initkeyboard('keyboard');
}
function isIOS() {
var agent = navigator.userAgent.toLowerCase();
return agent.match(/(iphone|ipod|ipad)/);
}
function initkeyboard(name) {
var el = document.getElementById(name);
el.swyping = false;
el.keybuffer = '';
if (isIOS()) {
el.ontouchstart = touchmovehandler;
el.ontouchmove = touchmovehandler;
el.ontouchend = mouseuphandler;
} else {
el.onmousedown = mousedownhandler;
el.onmouseover = mouseoverhandler;
el.onmouseup = mouseuphandler;
}
}
function touchmovehandler(e) {
var e = window.event || e;
var target = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
if (target.className=='swypable') this.keybuffer += target.textContent;
return true;
}
function mousedownhandler(e) {
var e = window.event || e;
if (e.target.className=='swypable') this.keybuffer += e.target.textContent;
this.swyping = true;
return false;
}
function mouseuphandler(e) {
this.swyping = false;
var el = document.getElementById('output');
el.src = 'swypeserver.php?lang=en&text=' + this.keybuffer;
this.keybuffer = '';
}
function mouseoverhandler(e) {
var e = window.event || e;
if (!this.swyping) return;
if (e.target.className=='swypable') this.keybuffer += e.target.textContent;
}
</script>
</head>
<body ontouchmove='event.preventDefault();' onload='init();'>
<div id='wrapper'>
<h1>Simple SWYPE demo</h1>
<p>english dictionary - AZERTY keyboard</p>
<p>Swype using your mouse: clickleft -> hold -> swype -> release</p>
<p>or use your iOS device</p>
<p>tested with Safari and Firefox both on OSX and Safari on iOS</p>
<iframe id='output' height=40></iframe>
<div id='keyboard' class='keyboard'>
<ul>
<li class='upper'>
<ul>
<li class='swypable'>a</li><li class='swypable'>z</li><li class='swypable'>e</li><li class='swypable'>r</li><li class='swypable'>t</li><li class='swypable'>y</li><li class='swypable'>u</li><li class='swypable'>i</li><li class='swypable'>o</li><li class='swypable'>p</li>
</ul>
</li>
<li class='middle'>
<ul>
<li class='swypable'>q</li><li class='swypable'>s</li><li class='swypable'>d</li><li class='swypable'>f</li><li class='swypable'>g</li><li class='swypable'>h</li><li class='swypable'>j</li><li class='swypable'>k</li><li class='swypable'>l</li><li class='swypable'>m</li>
</ul>
</li>
<li class='lower'>
<ul>
<li class='swypable'>w</li><li class='swypable'>x</li><li class='swypable'>c</li><li class='swypable'>v</li><li class='swypable'>b</li><li class='swypable'>n</li>
</ul>
</li>
</ul>
</div>
</div>
</body>
</html>
|