sidebar.wxs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var newmark = startmark = 0
  2. var status = 0
  3. function touchstart(e, ins) {
  4. var pageX = (e.touches[0] || e.changedTouches[0]).pageX
  5. startmark = newmark = pageX
  6. }
  7. function touchmove(e, ins) {
  8. var pageX = (e.touches[0] || e.changedTouches[0]).pageX
  9. console.log('pageX', pageX);
  10. newmark = pageX
  11. // var data = ins.getData()
  12. var data = {
  13. windowWidth: e.target.dataset.width
  14. }
  15. if (startmark < pageX) {
  16. if (data.windowWidth * 0.4 > Math.abs(newmark - startmark)) {
  17. console.log('newmark - startmark',newmark - startmark)
  18. ins.selectComponent('.page-top').setStyle({
  19. transform: 'translateX(' + Math.min(data.windowWidth * 0.4, ((status == 1 ? data.windowWidth * 0.4 : 0) + newmark - startmark)) + 'px)'
  20. })
  21. }
  22. }
  23. if (startmark > pageX) {
  24. ins.selectComponent('.page-top').setStyle({
  25. transform: 'translateX(' + Math.max(0, ((status == 1 ? data.windowWidth * 0.4 : 0) + newmark - startmark)) + 'px)'
  26. })
  27. }
  28. }
  29. function touchend(e, ins) {
  30. var pageX = (e.touches[0] || e.changedTouches[0]).pageX
  31. newmark = pageX
  32. // var data = ins.getData()
  33. var data = {
  34. windowWidth: e.target.dataset.width
  35. }
  36. if (startmark < pageX) {
  37. if (data.windowWidth * 0.2 < Math.abs(newmark - startmark)) {
  38. ins.selectComponent('.page-top').setStyle({
  39. transform: 'translateX(' + (data.windowWidth * 0.4) + 'px)'
  40. })
  41. status = 1 // 展开状态
  42. } else {
  43. ins.selectComponent('.page-top').setStyle({
  44. transform: 'translateX(0px)'
  45. })
  46. status = 0 // 收起状态
  47. }
  48. }
  49. if (startmark > newmark) {
  50. ins.selectComponent('.page-top').setStyle({
  51. transform: 'translateX(0px)'
  52. })
  53. status = 0 // 收起状态
  54. }
  55. }
  56. module.exports = {
  57. touchstart: touchstart,
  58. touchmove: touchmove,
  59. touchend: touchend
  60. }