mui结合echarts出现echarts图像无法显示的问题

2025-10-24 01:43:36

1、使用MUI前端模版创建一个包含子页面的底部Tab样式页面,如下代码为模版自动生成,只需添加自定义的几个页面'home.html', 'blog.html', 'my.html'.

 //mui初始化

mui.init();

var subpages = ['home.html', 'blog.html', 'my.html'];

var subpage_style = {

top: '0',

bottom: '51px'

};

var aniShow = {};

//创建子页面,首个选项卡页面显示,其它均隐藏;

mui.plusReady(function() {

var self = plus.webview.currentWebview();

for (var i = 0; i < subpages.length; i++) {

var temp = {};

var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);

if (i > 0) {

sub.hide();

}else{

temp[subpages[i]] = "true";

mui.extend(aniShow,temp);

}

self.append(sub);

}

});

//当前激活选项

var activeTab = subpages[0];

//选项卡点击事件

mui('.mui-bar-tab').on('tap', 'a', function(e) {

var targetTab = this.getAttribute('href');

if (targetTab == activeTab) {

return;

}

//更换标题

// title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;

//显示目标选项卡

//若为iOS平台或非首次显示,则直接显示

if(mui.os.ios||aniShow[targetTab]){

plus.webview.show(targetTab);

}else{

var temp = {};

temp[targetTab] = "true";

mui.extend(aniShow,temp);

plus.webview.show(targetTab,"fade-in",300);

}

//隐藏当前;

plus.webview.hide(activeTab);

//更改当前活跃的选项卡

activeTab = targetTab;

});

mui结合echarts出现echarts图像无法显示的问题

mui结合echarts出现echarts图像无法显示的问题

2、在blog.html页面创建一个echarts图形,但在此模式下点击底部tab是无法正常渲染出效果来的

mui结合echarts出现echarts图像无法显示的问题

3、echarts的代码如下:

var chart = echarts.init(document.getElementById('bar'));

option = {

xAxis: {

type: 'category',

boundaryGap: false,

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

},

yAxis: {

type: 'value'

},

series: [{

data: [820, 932, 901, 934, 1290, 1330, 1320],

type: 'line',

areaStyle: {}

}]

};

chart.setOption(option, true);

mui结合echarts出现echarts图像无法显示的问题

4、解决这个问题,本次解决的方法是在当前的页面添加一个监控事件,当触发此事件时才渲染,就不会出现无法显示的问题了,具体代码如下:

mui.init();

mui.plusReady(function(){

var foo = function(){

var chart = echarts.init(document.getElementById('bar'));

option = {

xAxis: {

type: 'category',

boundaryGap: false,

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

},

yAxis: {

type: 'value'

},

series: [{

data: [820, 932, 901, 934, 1290, 1330, 1320],

type: 'line',

areaStyle: {}

}]

};

chart.setOption(option, true);

}

var flag = true;

var self = plus.webview.currentWebview();

self.addEventListener('show',function(){

if(flag){

foo();

flag = false;

}

});

});

需要先创建一个方法,并在监听事件中执行这个方法才生效

mui结合echarts出现echarts图像无法显示的问题

5、再次退出APP,重新打开,并点击底部tab,可以发现可正常显示图形

mui结合echarts出现echarts图像无法显示的问题

1、此方法会在每次点击底部tab后去刷新图表,如果数据为ajax请求,就会每次点击都会去请求一次,这样很没必要,可添加一个标志位来判断是否为第一次点击,否则就不会触发再次渲染

mui结合echarts出现echarts图像无法显示的问题

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢