echarts图使用tab和下拉切换

方法一:用tab建切换

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="jquery-1.12.4.min.js"></script><script type="text/javascript" src="echarts.js"></script><style>.btns input{width:100px;height: 40px;background-color: #ddd;border: 0;}.btns .current{background-color: gold;}.cons .active{display: block;}.tab1{width: 500px;height: 300px;}.none {display: none;}</style><script>$(function () {var $btn = $('.btns input');var $div = $('.cons div');$btn.click(function () {$(this).addClass('current').siblings().removeClass('current');$('.cons .item').eq($(this).index()).addClass('active').siblings('.item').removeClass('active');})})</script>
</head>
<body><div class="btns"><input type="button" name="" value="01" class="current"><input type="button" name="" value="02"><input type="button" name="" value="03"></div><div class="cons"><div  class="clearfloat item none active"><div id="tab1" class="tab1"></div></div><div class="clearfloat item none"><div id="tab2" class="tab1"></div></div><div class="clearfloat item none"><div id="tab3" class="tab1"></div></div></div>
<script type="text/javascript">(function () {var myChart1 = echarts.init(document.getElementById('tab1'));var option1 = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [2,2.5 , 3.3, 4.5, 6.3, 10.2, 20.3],type: 'line'}]};// 为echarts对象加载数据myChart1.setOption(option1);var myChart2 = echarts.init(document.getElementById('tab2'));var option2 = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar'}]};myChart2.setOption(option2);var myChart3 = echarts.init(document.getElementById('tab3'));var option3 = {title : {text: '某站点用户访问来源',subtext: '纯属虚构',x:'center'},tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},legend: {orient: 'vertical',left: 'left',data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']},series : [{name: '访问来源',type: 'pie',radius : '55%',center: ['50%', '60%'],data:[{value:335, name:'直接访问'},{value:310, name:'邮件营销'},{value:234, name:'联盟广告'},{value:135, name:'视频广告'},{value:1548, name:'搜索引擎'}],itemStyle: {emphasis: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};myChart3.setOption(option3);})()
</script>
</body>
</html>

效果:

                     在这里插入图片描述

 

方法二:利用下拉列表

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>导航条</title><script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><script src="echarts.js" type="text/javascript" ></script><script>$(function(){var li = $('#tabs');var cc=$('#tabs option');var len=cc.length;li.change(function(){var t = parseInt(li.get(0).selectedIndex);for(var i= 0;i<len;i++){if(t==i){$('#chanpin'+t).show();}else{$('#chanpin'+i).hide();}}});});</script><style>.selector{margin: 17px 15px 0 0 ;float: right;}#content .active{display: block;}.chart{width: 400px;height: 300px;}.none {display: none;}</style>
</head>
<body><select name="status" id="tabs" class="selector"><!--<option>ALL</option>--><option>表1</option><option>表2</option><option>表3</option></select><div id="content"><div id ="chanpin0" class="none active"><div id ="main1" class="chart" ></div><!--我们是共产主义接班人!!--></div><div id ="chanpin1" class="none"><div id ="main2" class="chart" ></div></div><div id ="chanpin2" class="none"><div id ="main3" class="chart" ></div></div></div><script type="text/javascript">(function () {var myChart1 = echarts.init(document.getElementById('main1'));var option1 = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [2,2.5 , 3.3, 4.5, 6.3, 10.2, 20.3],type: 'line'}]};// 为echarts对象加载数据myChart1.setOption(option1);var myChart2 = echarts.init(document.getElementById('main2'));var option2 = {xAxis: {type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: 'bar'}]};myChart2.setOption(option2);var myChart3 = echarts.init(document.getElementById('main3'));var option3 = {title : {text: '某站点用户访问来源',subtext: '纯属虚构',x:'center'},tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},legend: {orient: 'vertical',left: 'left',data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']},series : [{name: '访问来源',type: 'pie',radius : '55%',center: ['50%', '60%'],data:[{value:335, name:'直接访问'},{value:310, name:'邮件营销'},{value:234, name:'联盟广告'},{value:135, name:'视频广告'},{value:1548, name:'搜索引擎'}],itemStyle: {emphasis: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};myChart3.setOption(option3);})()
</script>
</body>
</html>

效果图:

参考自https://blog.csdn.net/luoyangxa/article/details/83510501

当在切换时有的时候第二图不会正常显示,是因为echarts不能识别到你设置的百分比宽度

解决方案一:设置成固定宽度

解决方案二:https://www.zhihu.com/question/42895113

(还没有试) 

解决方案三:

在html文件加载时就给main1,main2,main3设置宽度为父div的宽度(也可以增减30左右的像素)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytest fixture之request传参

Pytest中我们经常会用到数据参数化&#xff0c;我们来介绍下装饰器pytest.fixture()配合request传参的使用 user request.param 如果想把登录操作放到前置操作里&#xff0c;也就是用到pytest.fixture装饰器&#xff0c;传参就用默认的request参数 user request.param 这一…

使用securecrt在本地与服务器之间上传下载数据

第一种方式&#xff1a; 1、首先安装&#xff1a;apt install lrzsz lrzsz是一款在Linux里可代替ftp上传和下载的程序。 2、设置上传和下载目录&#xff1a;选项--》会话选项--》X/Y/Zmodem 中设置上传和下载目录 3、上传和下载 上传文件只需在shel中输入命令"rz"…

Pytest自定义标记mark及特定运行方式

mark 标记 标记执行指定类 pytest.main([-s,文件名,-m标记名]) pytest.main([-s,test01.py,-mtest]) import pytest pytest.mark.test class Test(object):def test_01(self):print(test_01)def test_02(self):print(test_02) if __name____main__:#运行指定的类pytest.main…

【Python】Error:'int' object is not callable

python错误&#xff1a; TypeError: int object is not callable 经过百度&#xff0c;可能是 你正在调用一个不能被调用的变量或对象&#xff0c;具体表现就是你调用函数、变量的方式错误。 如&#xff1a; max0 a[1.1, 2.0, 3.0, 4.0, 5.0] maxmax(a) 所以在命名变量时一定…

Pytest跳过执行之@pytest.mark.skip()详解大全

一、skip介绍及运用 在我们自动化测试过程中&#xff0c;经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了&#xff0c;这时我们就可以用到跳过skip用例&#xff0c;如果我们注释掉或删除掉&#xff0c;后面还要进行恢复操作。 1、skip跳过成…

python并发编程5-线程

一、复习 # 线程# 线程是进程中的执行单位# 线程是CPU调度的最小单位# 线程之间资源共享## 线程的开启和关闭以及切换的时间开销远远小于进程# 线程本身可以在同一时间使用多个CPU # threading# 使用方法类似于multiprocess # python与线程# CPython解释器在解释代码中容易产生…

Pytest标记用例失败之xfail

项目自动化测试中&#xff0c;如果接口2依赖接口1的响应结果值&#xff0c;或者用例2依赖用例1的响应结果值&#xff0c;自然需要与接口1或用例1进行关联&#xff0c;但是当接口1或用例1执行失败&#xff0c;接口2或用例2一定也是失败的&#xff0c;所以这时不必要再进行接口2和…

python并发编程6-协程

1、基础 # 进程 启动多个进程 进程之间是由操作系统&#xff08;时间片轮转&#xff09;负责调用 # 线程 启动多个线程 真正被CPU执行的最小单位是线程# 开启一个线程 创建一个线程 寄存器 堆栈# 关闭一个线程 等都需要时间 # 协程&#xff1a;本质上是一个线程# 能够在多个任…

JMeter之HTTP请求上传文件/上传图片

Jmeter实现接口上传图片 一、Fiddler抓包上传图片接口 查看WebForms&#xff0c;接口传参为空&#xff0c;文件/图片传参为<file>对用的Name值&#xff1a; Content-Disposition: form-data; name"file"; filename"IMG_20191116_110507.jpg" Con…

js关闭setInterval及终止ajax请求

用clearInterval&#xff08;&#xff09;即可搞定。亲测有效 $(document).ready(function(){c setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法 }); function checkIsExist(){$.ajax({type: "POST",url: "/SecondServlet",data: &qu…

Jmeter吞吐量控制器详解

一、吞吐量控制器 吞吐量控制器(Throughput Controller)用来控制其下元件的执行次数&#xff0c;并无控制吞吐量的功能。 作用&#xff1a;控制其下的子节点的执行次数与负载比例分配 吞吐量控制器字段介绍&#xff1a; Total Executions&#xff1a;执行百分比&#xff08;…

Python递归通用接口响应深层提取

最近在做接口自动化断言时&#xff0c;每个接口文件里都写了一遍提取接口响应数据&#xff0c;然后append到列表里&#xff0c;传给公共的断言方法与sql查询出来的数据做比对&#xff0c;这样如果是100个接口&#xff0c;每个接口都写一遍接口响应数据提取&#xff0c;就要写10…

django与grpc融合的过程

一、通过socket将grpc接收的数据传输到django中 # djangogrpcsocket(服务端给客户端发送文件) 配置过程# 将socket的服务端作为一个线程&#xff0c;放在grpc服务端下&#xff0c;一起启动# 将socket的客户端作为一个模块&#xff0c;直接嵌入在websocket的while True循环之下接…

Jmeter之json条件提取实战(三)

有时我们想通过接口响应数据中的默写条件进行提取对应的字段&#xff0c;这时&#xff0c;就可以用到json条件提取&#xff0c;可以提取对应的值进行使用或迭代。 接口请求地址&#xff1a; sh.lianjia.com/api/newhouserecommend?type1&queryhttps%3A%2F%2Fsh.lianjia.…

python 手动拼接json数据

第一步&#xff1a;分别拼接为字符串 第二步&#xff1a;将字符串转化为list 第三歩&#xff1a;将两个list合并为dict 第四步&#xff1a;将dict转换为接送数据 如&#xff1a; import json keys [a, b, c] values [1, 2, 3] dictionary dict(zip(keys, values)) j …

Python格式化函数format详解

format用法 相对基本格式化输出采用‘%’的方法&#xff0c;format()功能更强大&#xff0c;该函数把字符串当成一个模板&#xff0c;通过传入的参数进行格式化&#xff0c;并且使用大括号‘{}’作为特殊字符代替‘%’使用方法由两种&#xff1a;b.format(a)和format(a,b) fo…

django后端用websocket传输数据

1、websocket服务端发送数据好像只能传输str类型数据。所以先将数据利用json.dumps()进行打包操作 json_data json.dumps(data) 2、websocket客户端接收数据时需要先将json对象进行解码。利用 var obj_temp JSON.parse(str); //由JSON字符串转换为JSON对象 此时若在界面直…

Python自动化测试问题及处理方法(一)

一、接口自动化测试中&#xff0c;会用到测试账号&#xff0c;如何合理运用账号&#xff1f; 账号一般用于接口登录、接口用例传参、操作sql等&#xff0c;目前账号是写到yaml配置文件里&#xff0c;如果1个账户使用会出现资源冲突&#xff0c;可以配置多个账号使用&#xff0…

Python自动化测试|如何解决前置模块及数据依赖(二)

在做接口自动化测试时&#xff0c;遇到下面这个疑惑&#xff0c;然后再群里请教了大家&#xff0c;讨论如下&#xff0c;可以参考下&#xff1a; 讨论1&#xff1a; 上海—橙子探索测试 10:12:34 自动化测试中&#xff0c;提现接口一般会依赖前置功能实名认证、绑卡、设置交易…

django启动时同时使用Schedule启动其他程序

1、安装Schedule 打开cmd输入&#xff1a; pip install schedule 2、打开django项目的views.py 导入模块 from apscheduler.scheduler import Scheduler 输入如下代码&#xff1a; sched Scheduler() # 实例化&#xff0c;固定格式 # sched.interval_schedule(days1,s…