fingerDemo.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div class="finger-demo">
  3. <img
  4. v-tap="{methods: tap, arg: {index:1,item:'tap'}}"
  5. v-singleTap="{methods: singleTap, arg: {index:2,item:'singleTap'}}"
  6. v-longTap="{methods: longTap, arg: {index:3,item:'longTap'}}"
  7. v-doubleTap="{methods: doubleTap, arg: {index:4,item:'doubleTap'}}"
  8. v-pressMove="{methods: pressMove, arg: {index:5,item:'pressMove'}}"
  9. v-swipe="{methods: swipe, arg: {index:6,item:'swipe'}}"
  10. v-rotate="{methods: rotate, arg: {index:7,item:'rotate'}}"
  11. v-multipointStart="{methods: multipointStart, arg: {index:8,item:'multipointStart'}}"
  12. v-multipointEnd="{methods: multipointEnd, arg: {index:9,item:'multipointEnd'}}"
  13. v-pinch="{methods: pinch, arg: arg}"
  14. class="finger-demo-img"
  15. :style="imgStyle"
  16. />
  17. <div>{{ msg }}</div>
  18. </div>
  19. </template>
  20. <script>
  21. export default {
  22. data () {
  23. return {
  24. left: 0,
  25. top: 0,
  26. scale: 1,
  27. angle: 0,
  28. initScale: 1,
  29. msg: '',
  30. arg: {index: 10, item: 'pinch'},
  31. };
  32. },
  33. computed: {
  34. imgStyle () {
  35. var self = this;
  36. var tempObj = {
  37. transform: 'translate3d(' + self.left + 'px, ' + self.top + 'px, 0) scale(' + self.scale + ') rotate(' + self.angle + 'deg)',
  38. };
  39. return tempObj;
  40. },
  41. },
  42. methods: {
  43. tap (e, args) {
  44. var self = this;
  45. self.msg = 'tap';
  46. console.log('tap index:' + args.index + 'item:' + args.item);
  47. },
  48. singleTap (e, args) {
  49. var self = this;
  50. self.msg = 'singleTap';
  51. console.log('tap index:' + args.index + 'item:' + args.item);
  52. },
  53. longTap (e, args) {
  54. var self = this;
  55. self.msg = 'longTap';
  56. console.log('tap index:' + args.index + 'item:' + args.item);
  57. },
  58. doubleTap (e, args) {
  59. var self = this;
  60. self.msg = 'doubleTap';
  61. console.log('tap index:' + args.index + 'item:' + args.item);
  62. },
  63. rotate (e, args) {
  64. var self = this;
  65. self.msg = 'rotate';
  66. self.angle += e.angle;
  67. console.log('tap index:' + args.index + 'item:' + args.item);
  68. },
  69. pressMove (e, args) {
  70. var self = this;
  71. self.msg = 'pressMove';
  72. self.left += e.deltaX;
  73. self.top += e.deltaY;
  74. console.log('tap index:' + args.index + 'item:' + args.item);
  75. },
  76. swipe (e, args) {
  77. var self = this;
  78. self.msg = 'swipe';
  79. console.log('tap index:' + args.index + 'item:' + args.item);
  80. },
  81. multipointStart: function (e, args) {
  82. var self = this;
  83. self.msg = 'multipointStart';
  84. self.initScale = self.scale;
  85. console.log('tap index:' + args.index + 'item:' + args.item);
  86. },
  87. multipointEnd: function (e, args) {
  88. var self = this;
  89. self.msg = 'multipointEnd';
  90. },
  91. pinch (e, args) {
  92. var self = this;
  93. self.msg = 'pinch';
  94. self.scale = self.initScale * e.scale;
  95. console.log('tap index:' + args.index + 'item:' + args.item);
  96. },
  97. },
  98. };
  99. </script>
  100. <style>
  101. .finger-demo{width:100%;text-align:center;}
  102. .finger-demo-img{width:200px;}
  103. </style>