function1.js 3.3 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 = -50;
  28. check.style.left = 50;
  29. saveRecord(250);
  30. var arrow=this.boxList[0];
  31. saveRecordr(0,arrow.rad,0,0,0);
  32. return arrow.rad<=100 && arrow.rad>=75;
  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:20,//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/3;
  60. if(temp>=20 && temp<=110)
  61. pBoxO.rad = temp;//(y/100);
  62. pBoxO.isUpdated = true;
  63. }
  64. else if(pEventType === Fingers.Gesture.EVENT_TYPE.start) {
  65. //topZIndex++;
  66. //pBoxO.zIndex = topZIndex;
  67. //pBoxO.isUpdated = true;
  68. }
  69. });
  70. /*finger.addGesture(Fingers.gesture.Hold, { nbFingers: 1}).addHandler(function(pEventType,pData){
  71. if(pEventType === Fingers.Gesture.EVENT_TYPE.instant)
  72. flag = true ;
  73. });
  74. finger.addGesture(Fingers.gesture.Transform, null).addHandler(function(pEventType, pData, pFingers) {
  75. if(pEventType === Fingers.Gesture.EVENT_TYPE.move) {
  76. pBoxO.rad += pData.deltaRotation;
  77. pBoxO.scale = Math.max(0.5, Math.min(2, pBoxO.scale * pData.deltaScale));
  78. pBoxO.isUpdated = true;
  79. }
  80. });*/
  81. pBoxO.fingers = finger ;
  82. }
  83. FingerComponent.prototype.transform=function(pBoxO) {
  84. if(pBoxO.isUpdated) {
  85. pBoxO.element.style[this.TRANSFORM_PREFIXED] = "translateZ(0) " +
  86. "translate(" + pBoxO.x + "px, " + pBoxO.y + "px) " +
  87. "scale(" + pBoxO.scale + ") " +//+ "rotate3d(0,0,0," + pBoxO.rad + "rad) ";
  88. "rotate(" + pBoxO.rad + "deg) ";
  89. pBoxO.element.style.zIndex = pBoxO.zIndex;
  90. pBoxO.isUpdated = false;
  91. }
  92. }
  93. FingerComponent.prototype.loop=function(){
  94. var x=this.loop();
  95. for(var i=0; i<this.boxList.length; i++) {
  96. this.transform(this.boxList[i]);
  97. }
  98. requestAnimationFrame(x);
  99. }
  100. FingerComponent.prototype.getVendorPrefixed=function(pArrayOfPrefixes) {
  101. var result = null;
  102. for (var i=0; i<pArrayOfPrefixes.length; i++) {
  103. if (document.body.style[pArrayOfPrefixes[i]] !== undefined) {
  104. result = pArrayOfPrefixes[i];
  105. break;
  106. }
  107. }
  108. return result;
  109. }