topsource.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const scrollevents = {
  2. sourceUp:function(e){
  3. var obj = {
  4. scrolltop:0,
  5. distance:0,
  6. startdot:""
  7. }
  8. this.setData({
  9. scrollsource:Object.assign(this.data.scrollsource,obj)
  10. })
  11. },
  12. sourceScroll:function(e){
  13. var scrolltop = e.detail.scrollTop;
  14. var obj = {scrolltop:scrolltop};
  15. if(scrolltop&&this.data.scrollsource.startdot){
  16. obj.startdot = "";
  17. obj.distance = 0;
  18. obj.scrolltop = 0
  19. this.setData({
  20. scrollsource:Object.assign(this.data.scrollsource,obj)
  21. })
  22. }else{
  23. this.setData({
  24. scrollsource:Object.assign(this.data.scrollsource,{
  25. scrolltop:scrolltop
  26. })
  27. })
  28. }
  29. console.log("sourceScroll",e,scrolltop)
  30. },
  31. sourceMove:function(e){
  32. var source = this.data.scrollsource
  33. if(e.timeStamp-source.timeStamp>200){
  34. if(source.startdot){
  35. var startdot = source.startdot;
  36. var enddot = e.changedTouches[0];
  37. var distance = enddot.pageY-startdot.pageY;
  38. this.setData({
  39. scrollsource:Object.assign(source,{distance:distance})
  40. })
  41. }else if(!source.scrolltop){
  42. var startdot = e.changedTouches[0];
  43. this.setData({
  44. scrollsource:Object.assign(source,{
  45. startdot:startdot,
  46. timeStamp:e.timeStamp
  47. }),
  48. })
  49. }
  50. }
  51. //console.log("consoleMove",e)
  52. },
  53. sourceStart:function(e){
  54. //console.log("sourceStart",e)
  55. var startdot = e.changedTouches[0];
  56. this.setData({
  57. scrollsource:Object.assign(this.data.scrollsource,{
  58. startdot:startdot,
  59. timeStamp:e.timeStamp
  60. })
  61. });
  62. },
  63. sourceEnd:function(e){
  64. this.setData({
  65. scrollsource:Object.assign(this.data.scrollsource,{
  66. distance:0,
  67. startdot:""
  68. })
  69. })
  70. //console.log("consoleEnd",e)
  71. }
  72. }
  73. export default function(item){
  74. item.setData({
  75. scrollsource:{
  76. scrolltop:0
  77. }
  78. })
  79. Object.assign(item,scrollevents);
  80. }