JSFiddle - React, Tailwind, and code Playground
by amindunited
HTML
<!--<script type="text/javascript" src="https://github.com/hadimichael/gest.js/blob/master/src/gest.js"></script>-->
JavaScript
/*
* @name: gest.js
* @description: gest.js is a webcam based gesture recognition library that helps developers make webpages more immersive.
* @version: 0.4.3
* @author: Hadi Michael (http://hadi.io)
* @acknowledgements: gest.js is an extension of work started by William Wu (https://github.com/wvvvw)
* @license: MIT License
*/
window.gest=function(e){function L(e,t,n){e=e/255;t=t/255;n=n/255;var r=Math.max(e,t,n);var i=Math.min(e,t,n);var s,o,u=r;var a=r-i;o=r===0?0:a/r;if(r==i){s=0}else{switch(r){case e:s=(t-n)/a+(t<n?6:0);break;case t:s=(n-e)/a+2;break;case n:s=(e-t)/a+4;break;default:break}s/=6}return[s,o,u]}function j(e){var n={x:e.x/e.d,y:e.y/e.d,d:e.d};H=.9*H+.1*n.d;var r=n.d-H,i=r>D;switch(B){case 0:if(i){B=1;M={x:n.x,y:n.y,d:n.d}}break;case 1:B=2;var s=n.x-M.x,o=n.y-M.y;var u=Math.abs(o)<Math.abs(s);if(s<-_&&u){m({direction:"Left",left:true})}else if(s>_&&u){m({direction:"Right",right:true})}if(o>_&&!u){if(r>P){m({direction:"Long down",down:true})}else{m({direction:"Down",down:true})}}else if(o<-_&&!u){if(r>P){m({direction:"Long up",up:true})}else{m({direction:"Up",up:true})}}U('<span style="line-height: 80px; vertical-align: middle;">'+t.direction+"</span>",50);break;case 2:if(!i){B=0}break;default:break}}var t={};navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia;var n={framerate:25,videoCompressionRate:5,debug:false,locked:false};var i=false;var s=false;var o;var u,f,l,c,h,p,d=0,v=0;var m=function(r){t.direction=r.direction||null;t.up=r.up||false;t.down=r.down||false;t.left=r.left||false;t.right=r.right||false;t.error=r.error||null;if((t.up||t.down||t.left||t.right)&&n.locked){if(n.debug){console.log("Locked. Gesture skipped.")}return false}else{n.locked=true;setTimeout(function(){n.locked=false},gest.options.locking)}try{if(e.createEventObject){return e.fireEvent("on"+t.eventType,t)}else{return e.dispatchEvent(t)}}catch(i){console.error(i);console.log(t);return false}};gest=function(){function...