function3.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. function FingerComponent(obj_list){
  2. this.TRANSFORM_PREFIXED = this.getVendorPrefixed(["transform", "msTransform", "MozTransform", "webkitTransform", "OTransform"]);
  3. this.boxList = [];
  4. for(var i = 0,objId;objId=obj_list[i];i++){
  5. var temp = this.assignBox(objId);
  6. this.boxList.push(temp);
  7. this.listen(temp);
  8. }
  9. var _this=this;
  10. var loop=function(){
  11. for(var i=0; i<_this.boxList.length; i++) {
  12. _this.transform(_this.boxList[i]);
  13. }
  14. requestAnimationFrame(loop);
  15. };
  16. loop();
  17. }
  18. function nextPage(code,num){
  19. saveRecord(code);
  20. setTimeout(1500,location.replace(num+'.php'));
  21. }
  22. function dragPic(){
  23. dragTime = Math.floor(Date.now() / 1000);
  24. }
  25. FingerComponent.prototype.checkRes=function() {
  26. check.style.display = "inline";
  27. check.style.top = 530;
  28. check.style.left = 100;
  29. saveRecord(250);
  30. var arrow=this.boxList[0];
  31. //confirm(arrow.rad);
  32. return arrow.rad<=8 && arrow.rad>=-1;
  33. }
  34. FingerComponent.prototype.assignBox=function(picS) {
  35. var pic = document.getElementById(picS);
  36. //console.log(pic);
  37. return {
  38. element: pic,
  39. isUpdated: true,
  40. x: 0,//Math.random() * (window.innerWidth - 200),
  41. y: 0,//Math.random() * (window.innerHeight - 300),
  42. rad: 17,//Math.random()*Math.PI * 2,
  43. scale: 1,
  44. rafId: 0,
  45. degx: 0,
  46. degy: 0
  47. }
  48. }
  49. FingerComponent.prototype.listen=function(pBoxO) {
  50. var finger = new Fingers(pBoxO.element);
  51. var flag=false;
  52. finger.addGesture(Fingers.gesture.Drag, null).addHandler(function(pEventType, pData, pFingers) {
  53. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  54. //pBoxO.x += pFingers[0].getDeltaX();
  55. //pBoxO.y += pFingers[0].getDeltaY();
  56. var x=pFingers[0].getDeltaX();
  57. var y=pFingers[0].getDeltaY();
  58. //console.log("X:"+x+" Y:"+y);
  59. var temp=pBoxO.rad+y/4;
  60. if(temp>=-73 && temp<=17)
  61. pBoxO.rad = temp;//(y/100);
  62. pBoxO.isUpdated = true;
  63. saveRecordr(0,pBoxO.rad,0,0,0);
  64. }
  65. else if(pEventType === Fingers.Gesture.EVENT_TYPE.start) {
  66. //topZIndex++;
  67. //pBoxO.zIndex = topZIndex;
  68. //pBoxO.isUpdated = true;
  69. }
  70. });
  71. /*finger.addGesture(Fingers.gesture.Hold, { nbFingers: 1}).addHandler(function(pEventType,pData){
  72. if(pEventType === Fingers.Gesture.EVENT_TYPE.instant)
  73. flag = true ;
  74. });
  75. finger.addGesture(Fingers.gesture.Transform, null).addHandler(function(pEventType, pData, pFingers) {
  76. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  77. pBoxO.rad += pData.deltaRotation;
  78. pBoxO.scale = Math.max(0.5, Math.min(2, pBoxO.scale * pData.deltaScale));
  79. pBoxO.isUpdated = true;
  80. }
  81. });*/
  82. pBoxO.fingers = finger ;
  83. }
  84. FingerComponent.prototype.transform=function(pBoxO) {
  85. if(pBoxO.isUpdated) {
  86. pBoxO.element.style[this.TRANSFORM_PREFIXED] = "translateZ(0) " +
  87. "translate(" + pBoxO.x + "px, " + pBoxO.y + "px) " +
  88. "scale(" + pBoxO.scale + ") " +//+ "rotate3d(0,0,0," + pBoxO.rad + "rad) ";
  89. "rotate(" + pBoxO.rad + "deg) ";
  90. pBoxO.element.style.zIndex = pBoxO.zIndex;
  91. pBoxO.isUpdated = false;
  92. }
  93. }
  94. FingerComponent.prototype.loop=function(){
  95. var x=this.loop();
  96. for(var i=0; i<this.boxList.length; i++) {
  97. this.transform(this.boxList[i]);
  98. }
  99. requestAnimationFrame(x);
  100. }
  101. FingerComponent.prototype.getVendorPrefixed=function(pArrayOfPrefixes) {
  102. var result = null;
  103. for (var i=0; i<pArrayOfPrefixes.length; i++) {
  104. if (document.body.style[pArrayOfPrefixes[i]] !== undefined) {
  105. result = pArrayOfPrefixes[i];
  106. break;
  107. }
  108. }
  109. return result;
  110. }