// 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' // }); // } 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); //查询哪一个元素 }, } })