touch-events-case.uvue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <view>
  3. <swiper ref="header" class="h-300" indicator-dots="true" circular="true" @change="swiperChange" @touchstart="swiperTouchStart" @touchmove="swiperTouchMove" @touchend="swiperTouchEnd">
  4. <swiper-item v-for="i in 3" :item-id="i" @touchstart="swiperItemTouchStart" @touchmove="swiperItemTouchMove" @touchend="swiperItemTouchEnd">
  5. <view class="h-300 header-tiem" @touchstart="viewTouchStart" @touchmove="viewTouchMove" @touchend="viewTouchEnd">
  6. <text>{{ i }}</text>
  7. </view>
  8. </swiper-item>
  9. </swiper>
  10. <view class="content">
  11. <boolean-data :defaultValue="false" title="stopPropagation" @change="changeStopPropagation"></boolean-data>
  12. <boolean-data :defaultValue="false" title="preventDefault" @change="changePreventDefault"></boolean-data>
  13. <text style="padding: 10px;">{{ touchResult }}</text>
  14. <view class="uni-padding-wrap uni-common-mt" style="bottom: 20px;">
  15. <navigator url="/pages/component/global-events/touch-events-preventDefault" hover-class="none">
  16. <button type="default" class="button">
  17. 测试 preventDefault
  18. </button>
  19. </navigator>
  20. </view>
  21. </view>
  22. </view>
  23. </template>
  24. <script>
  25. export default {
  26. data() {
  27. return {
  28. swiperChangeEvent: false,
  29. viewTouchEvent: false,
  30. swiperItemTouchEvent: false,
  31. swiperTouchEvent: false,
  32. stopPropagation: false,
  33. preventDefault: false,
  34. touchResult: ""
  35. }
  36. },
  37. methods: {
  38. changeStopPropagation(value: boolean) {
  39. this.stopPropagation = value
  40. },
  41. changePreventDefault(value: boolean) {
  42. this.preventDefault = value
  43. },
  44. swiperChange(e: UniSwiperChangeEvent) {
  45. console.log("swiperChange", e.detail.current)
  46. this.swiperChangeEvent = true
  47. },
  48. viewTouchStart(e: UniTouchEvent) {
  49. console.log("viewTouchStart")
  50. this.touchResult = "viewTouchStart"
  51. this.viewTouchEvent = true
  52. if (this.stopPropagation) e.stopPropagation()
  53. if (this.preventDefault) e.preventDefault()
  54. },
  55. viewTouchMove(e: UniTouchEvent) {
  56. console.log("viewTouchMove")
  57. this.touchResult = "viewTouchMove"
  58. this.viewTouchEvent = true
  59. if (this.stopPropagation) e.stopPropagation()
  60. if (this.preventDefault) e.preventDefault()
  61. },
  62. viewTouchEnd(e: UniTouchEvent) {
  63. console.log("viewTouchEnd")
  64. this.touchResult = "viewTouchEnd"
  65. if (this.stopPropagation) e.stopPropagation()
  66. },
  67. swiperItemTouchStart(e: UniTouchEvent) {
  68. console.log("swiperItemTouchStart")
  69. this.touchResult += " -> swiperItemTouchStart"
  70. this.swiperItemTouchEvent = true
  71. },
  72. swiperItemTouchMove(e: UniTouchEvent) {
  73. console.log("swiperItemTouchMove")
  74. this.touchResult += " -> swiperItemTouchMove"
  75. },
  76. swiperItemTouchEnd(e: UniTouchEvent) {
  77. console.log("swiperItemTouchEnd")
  78. this.touchResult += " -> swiperItemTouchEnd"
  79. },
  80. swiperTouchStart(e: UniTouchEvent) {
  81. console.log("swiperTouchStart")
  82. this.touchResult += " -> swiperTouchStart"
  83. this.swiperTouchEvent = true
  84. },
  85. swiperTouchMove(e: UniTouchEvent) {
  86. console.log("swiperTouchMove")
  87. this.touchResult += " -> swiperTouchMove"
  88. },
  89. swiperTouchEnd(e: UniTouchEvent) {
  90. console.log("swiperTouchEnd")
  91. this.touchResult += " -> swiperTouchEnd"
  92. },
  93. resetEvent() {
  94. this.swiperChangeEvent = false
  95. this.viewTouchEvent = false
  96. this.swiperItemTouchEvent = false
  97. this.swiperTouchEvent = false
  98. this.stopPropagation = true
  99. this.preventDefault = true
  100. },
  101. isPassTest1() {
  102. console.log("swiperChangeEvent:", this.swiperChangeEvent)
  103. return this.swiperChangeEvent == false
  104. },
  105. isPassTest2() {
  106. console.log("viewTouchEvent:", this.viewTouchEvent)
  107. console.log("swiperItemTouchEvent:", this.swiperItemTouchEvent)
  108. console.log("swiperTouchEvent:", this.swiperTouchEvent)
  109. return this.viewTouchEvent == true && this.swiperItemTouchEvent == true && this.swiperTouchEvent == true
  110. }
  111. }
  112. }
  113. </script>
  114. <style>
  115. .h-300{
  116. height: 300px;
  117. }
  118. .header-tiem {
  119. background-color: #89ff8d;
  120. align-items: center;
  121. justify-content: center;
  122. }
  123. </style>