WXS.uvue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <view class="area">
  3. <view @click="test.setColor" class="setColor">点击变成红色: {{test.msg}}</view>
  4. <view @touchstart="test.touchstart" @touchmove="test.touchmove" class="movable">{{test.msg}}</view>
  5. </view>
  6. </template>
  7. <script module="test" lang="wxs">
  8. var startX = 0
  9. var startY = 0
  10. var lastLeft = 50;
  11. var lastTop = 50
  12. function touchstart(event, ins) {
  13. console.log("touchstart")
  14. var touch = event.touches[0] || event.changedTouches[0]
  15. startX = touch.pageX
  16. startY = touch.pageY
  17. }
  18. function touchmove(event, ins) {
  19. console.log("touchmove")
  20. var touch = event.touches[0] || event.changedTouches[0]
  21. var pageX = touch.pageX
  22. var pageY = touch.pageY
  23. var left = pageX - startX + lastLeft
  24. var top = pageY - startY + lastTop
  25. startX = pageX
  26. startY = pageY
  27. lastLeft = left
  28. lastTop = top
  29. ins.selectComponent('.movable').setStyle({
  30. left: left + 'px',
  31. top: top + 'px'
  32. })
  33. return false
  34. }
  35. module.exports = {
  36. msg: 'Hello',
  37. touchstart: touchstart,
  38. touchmove: touchmove,
  39. setColor: function(event,ins) {
  40. ins.setStyle({
  41. color: "red"
  42. })
  43. }
  44. }
  45. </script>
  46. <script>
  47. export default {
  48. data() {
  49. return {}
  50. },
  51. methods: {}
  52. }
  53. </script>
  54. <style>
  55. .area {
  56. position: absolute;
  57. width: 100%;
  58. height: 100%;
  59. }
  60. .movable {
  61. position: absolute;
  62. width: 100px;
  63. height: 100px;
  64. left: 50px;
  65. top: 50px;
  66. color: #fff000;
  67. text-align: center;
  68. line-height: 100px;
  69. background-color: #ff5500;
  70. }
  71. </style>