fingerDemo.vue 3.0 KB

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