tui-sticky.wxs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var stickyChange = function(scrollTop, oldScrollTop, ownerInstance, ins) {
  2. if (!oldScrollTop && scrollTop === 0) return false;
  3. var dataset = ins.getDataset()
  4. var top = +dataset.top;
  5. var height = +dataset.height;
  6. var stickyTop = +dataset.stickytop;
  7. var isNativeHeader = dataset.isnativeheader;
  8. var isFixed = false;
  9. var distance = stickyTop
  10. // #ifdef H5
  11. if (isNativeHeader) {
  12. distance = distance - 44
  13. distance = distance < 0 ? 0 : distance
  14. }
  15. // #endif
  16. if (dataset.container) {
  17. isFixed = (scrollTop + distance >= top && scrollTop + distance < top + height) ? true : false
  18. } else {
  19. isFixed = scrollTop + distance >= top ? true : false
  20. }
  21. if (isFixed) {
  22. ownerInstance.selectComponent('.tui-sticky-bar').setStyle({
  23. "top": stickyTop + 'px'
  24. }).addClass('tui-sticky-fixed')
  25. ownerInstance.selectComponent('.tui-sticky-seat').setStyle({
  26. "display": 'block'
  27. })
  28. } else {
  29. ownerInstance.selectComponent('.tui-sticky-bar').setStyle({
  30. "top": 'auto'
  31. }).removeClass('tui-sticky-fixed')
  32. ownerInstance.selectComponent('.tui-sticky-seat').setStyle({
  33. "display": 'none'
  34. })
  35. }
  36. ownerInstance.triggerEvent("sticky", {
  37. isFixed: isFixed,
  38. index: parseInt(dataset.index)
  39. })
  40. }
  41. module.exports = {
  42. stickyChange: stickyChange
  43. }