漏刻有时数据可视化Echarts组件开发(42)动态创建DIV容器

效果展示

引入外部文件

html 复制代码
    <script src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/echarts.5.4.3.min.js"></script>

CSS层叠样式表

实现一行3列效果,自动换行;

css 复制代码
   .ecbox {
            height: 300px;
            width: 33.33%;
            float: left;
        }

数据列

演示数据,实际可以根据API返回的数据,确定列数和动态展示数据;

javascript 复制代码
    var dataList = [1, 2, 3, 4, 5];

动态创建DIV容器

javascript 复制代码
 var echartsDiv = '';
    //生成容器
    for (var j = 0; j < dataList.length; j++) {
        echartsDiv += '<div id="container' + j + '" class="ecbox"></div>';
    }

    //容器渲染
    $('body').append(echartsDiv);

遍历生成图表

javascript 复制代码
    //循环遍历图表
    for (var n = 0; n < dataList.length; n++) {
        getLines('container' + n + '', n);
    }

封装Echarts图表函数

csharp 复制代码
    //图表渲染
    function getLines(id, j) {
        var dom = document.getElementById(id);
        var myChart = echarts.init(dom, null, {
            renderer: 'canvas',
            useDirtyRect: false
        });

        var option = {
            title: {
                text: '动态容器图表' + (j + 1)
            },
            xAxis: {
                type: 'category',
                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
            },
            yAxis: {
                type: 'value'
            },
            series: [
                {
                    data: [150, 230, 224, 218, 135, 147, 260],
                    type: 'line'
                }
            ]
        };

        if (option && typeof option === 'object') {
            myChart.setOption(option);
        }

        window.addEventListener('resize', myChart.resize);

    }

AIGC的算法

要根据API返回的数据个数自动创建DIV容器并进行图表渲染,你可以使用JavaScript来动态创建DIV元素,并根据返回的数据数量确定创建的DIV数量。以下是一个示例代码:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>动态创建DIV并渲染图表</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.2.2/echarts.min.js"></script>
</head>
<body>
    <div id="container"></div>

    <script>
        // 假设API返回的数据
        var apiData = [10, 20, 30, 40, 50];

        // 根据API返回的数据个数创建DIV容器
        for (var i = 0; i < apiData.length; i++) {
            var divContainer = document.createElement('div');
            divContainer.style.width = '200px';
            divContainer.style.height = '200px';
            divContainer.style.margin = '10px';
            divContainer.id = 'chart-' + i;  // 每个DIV的ID,用于ECharts初始化时指定图表容器
            document.getElementById('container').appendChild(divContainer);
        }

        // 根据API返回的数据渲染图表
        var myChart;
        for (var i = 0; i < apiData.length; i++) {
            var chartDiv = document.getElementById('chart-' + i);
            var chartData = apiData[i];  // 每个图表的独立数据,根据API返回的数据来设置
            myChart = echarts.init(chartDiv);
            var option = {
                title: {
                    text: 'Chart ' + i,  // 每个图表的标题,可以根据需求设置
                    left: 'center'
                },
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
                        type: 'cross',
                        label: {
                            backgroundColor: '#6a7985'
                        }
                    }
                },
                legend: {
                    data: ['Sales']  // 每个图表的图例,可以根据需求设置
                },
                xAxis: {
                    type: 'category',
                    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']  // 每个图表的x轴数据,可以根据需求设置
                },
                yAxis: {
                    type: 'value'  // 每个图表的y轴类型,可以根据需求设置
                },
                series: [{  // 每个图表的数据系列,根据API返回的数据来设置
                    name: 'Sales',
                    type: 'bar',
                    data: [chartData]  // 每个图表的数据,根据API返回的数据来设置
                }]
            };
            myChart.setOption(option);
        }
    </script>
</body>
</html>

在上述代码中,我们首先假设API返回了一个数组apiData,包含了要显示的数据。然后,我们使用for循环动态创建多个div元素作为ECharts图表的容器,并设置样式和ID。接下来,我们再次使用for循环根据API返回的数据渲染每个图表。在每个循环中,我们使用echarts.init方法初始化ECharts实例,并使用setOption方法设置图表的配置项和数据。请根据你的实际需求调整样式、标题、图例、x轴和y轴的设置。


@漏刻有时

相关推荐
Liu.7749 分钟前
vue3组件之间传输数据
前端·javascript·vue.js
|晴 天|9 分钟前
前端闭包:从概念到实战,解锁JavaScript高级技能
开发语言·前端·javascript
开发者小天10 分钟前
react的拖拽组件库dnd-kit
前端·react.js·前端框架
用户44455436542620 分钟前
在Android开发中阅读源码的指导思路
前端
用户542778485154022 分钟前
ESM 模块(ECMAScript Module)详解
前端
全栈前端老曹37 分钟前
【ReactNative】核心组件与 JSX 语法
前端·javascript·react native·react.js·跨平台·jsx·移动端开发
用户54277848515401 小时前
JavaScript 闭包详解:由浅入深掌握作用域与内存管理的艺术
前端
小小黑0071 小时前
快手小程序-实现插屏广告的功能
前端·javascript·小程序
用户54277848515401 小时前
闭包在 Vue 项目中的应用
前端
TG:@yunlaoda360 云老大1 小时前
配置华为云国际站代理商OBS跨区域复制时,如何编辑委托信任策略?
java·前端·华为云