banner.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const App = getApp();
  2. Component({
  3. options: {
  4. },
  5. /**
  6. * 组件的属性列表
  7. * 用于组件自定义设置
  8. */
  9. properties: {
  10. itemIndex: String,
  11. itemStyle: Object,
  12. dataList: Object,
  13. params: Object
  14. },
  15. /**
  16. * 私有数据,组件的初始数据
  17. * 可用于模版渲染
  18. */
  19. data: {
  20. // banner轮播组件属性
  21. indicatorDots: true, // 是否显示面板指示点
  22. autoplay: true, // 是否自动切换
  23. duration: 800, // 滑动动画时长
  24. imgHeights: [], // 图片的高度
  25. imgCurrent: 0, // 当前banne所在滑块指针
  26. },
  27. /**
  28. * 组件的方法列表
  29. * 更新属性和数据的方法与更新页面数据的方法类似
  30. */
  31. methods: {
  32. /**
  33. * 计算图片高度
  34. */
  35. _imagesHeight: function(e) {
  36. // 获取图片真实宽度
  37. let imgwidth = e.detail.width,
  38. imgheight = e.detail.height,
  39. // 宽高比
  40. ratio = imgwidth / imgheight;
  41. // 计算的高度值
  42. let viewHeight = 750 / ratio,
  43. imgHeights = this.data.imgHeights;
  44. // 把每一张图片的高度记录到数组里
  45. imgHeights.push(viewHeight);
  46. this.setData({
  47. imgHeights,
  48. });
  49. },
  50. /**
  51. * 记录当前指针
  52. */
  53. _bindChange: function(e) {
  54. this.setData({
  55. imgCurrent: e.detail.current
  56. });
  57. },
  58. /**
  59. * 跳转到指定页面
  60. */
  61. navigationTo: function(e) {
  62. App.navigationTo(e.currentTarget.dataset.url);
  63. },
  64. }
  65. })