// component/switchtab/switchtab.js Component({ options: { addGlobalClass: true, multipleSlots: true }, /** * 组件的属性列表 */ properties: { tabList: { type: Array, value: [] }, pageList: { type: Array, value: [] }, }, /** * 组件的初始数据 */ data: { //选项卡相关 currentTab: 0, // pageheight: '600px', }, observers: { 'pageList': function() { this.tabsHeight('.page0'); } }, /** * 组件的方法列表 */ methods: { //计算swiper高度方法(在切换的时候调用) tabsHeight(element) { let that = this; let query = this.createSelectorQuery(); //必须要先创建一个查询 query.select(element).boundingClientRect(function (rect) { if (that.data.pageheight) { let pageheight = that.data.pageheight.split('px')[0] pageheight = parseInt(pageheight) if (rect.height > pageheight) { that.setData({ pageheight: rect.height + 'px' }); } } else { that.setData({ pageheight: rect.height + 'px' }); } }).exec(); }, swichNav: function (e) { var that = this; if (this.data.currentTab === e.target.dataset.current) { return false; } else { that.setData({ currentTab: e.target.dataset.current, navScrollLeft: e.target.dataset.current >= 3 ? ((e.target.dataset.current) * 60) : 0 //判断当前选中的个数是否是第5个 }) // that.tabsHeight('.page' + e.target.dataset.current); //查询哪一个元素 } }, bindChange: function (e) { var that = this; that.setData({ currentTab: e.detail.current, navScrollLeft: e.detail.current >= 3 ? ((e.detail.current) * 60) : 0 //判断当前选中的个数是否是第5个 }); that.tabsHeight('.page' + e.detail.current); //查询哪一个元素 }, } })