Skip to content

Instantly share code, notes, and snippets.

@pulges
Created March 21, 2016 12:47
Show Gist options
  • Save pulges/b0f7e751e62f0c2141cd to your computer and use it in GitHub Desktop.
Save pulges/b0f7e751e62f0c2141cd to your computer and use it in GitHub Desktop.
Touch delayed start
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
#thing {
height: 200px;
background: blue;
color: white;
-webkit-user-select: none;
}
</style>
</head>
<body>
sdfsdf
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<div id="thing">TEXT</div>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint dolorem voluptatem accusamus nulla autem odio doloribus accusantium blanditiis perspiciatis dolor commodi, iure, vero quae voluptatum ab, porro natus vel aliquid.</p>
<script>
var delay = 600,
touchStartTime,
moveStartTime,
moveTimeout;
document.querySelector('#thing').addEventListener('touchstart', function(event) {
touchStartTime = (new Date()).getTime();
document.querySelector('#thing').style.backgroundColor = "green";
moveTimeout = window.setTimeout(function() {
document.querySelector('#thing').style.backgroundColor = "red";
window.navigator.vibrate(50);
}, delay);
});
document.querySelector('#thing').addEventListener('touchmove', function(event) {
if (!moveStartTime) {
moveStartTime = (new Date()).getTime();
if (moveStartTime <= touchStartTime + delay) {
window.clearTimeout(moveTimeout);
}
}
if (moveStartTime > touchStartTime + delay) {
document.querySelector('#thing').style.backgroundColor = "purple";
event.preventDefault();
event.stopPropagation();
}
});
document.querySelector('#thing').addEventListener('touchend', function(event) {
moveStartTime = null;
touchStartTime = null;
window.clearTimeout(moveTimeout);
document.querySelector('#thing').style.backgroundColor = "blue";
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment