这种怎么做饼图?js html(语言-javascript)

  • ```

var continent = [ "亚洲" , "欧洲" , "非洲" , "美洲" , "大洋洲" ];
var population = [
[9000, 870  , 3000 , 1000 , 5200 ],
[ 3400, 8000 , 2300 , 4922 , 374 ],
[2000, 2000 , 7700 , 4881 , 1050 ],
[3000, 8012 , 5531 , 500 , 400 ],
[3540, 4310 , 1500 , 1900 , 300 ]
];

```

可以用第三方库,比如 echarts,Chart.js 等:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>饼图示例</title>
        <script src="https://cdn.jsdelivr.net/npm/echarts@5.2.1/dist/echarts.min.js"></script>
    </head>
    <body>
        <div id="chart" style="width: 600px; height: 400px;"></div>
        <script>
            var myChart = echarts.init(document.getElementById('chart'));
            var option = {
                title: {
                    text: '世界人口分布图'
                },
                tooltip: {},
                legend: {
                    data: ['亚洲', '欧洲', '非洲', '美洲', '大洋洲']
                },
                series: [{
                    name: '人口分布',
                    type: 'pie',
                    data: [
                        { value: 9000, name: '亚洲' },
                        { value: 870, name: '欧洲' },
                        { value: 3000, name: '非洲' },
                        { value: 1000, name: '美洲' },
                        { value: 5200, name: '大洋洲' }
                    ]
                }]
            };
            myChart.setOption(option);
        </script>
    </body>
</html>

可以结合echarts试试,只要把数据丢过去就可以了。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/934204
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:浅谈html转义及防止javascript注入攻击
  • 除此之外, 这篇博客: html & js 实现拖动效果中的 javascript 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 样式很简单,就不多说。
    其中的蓝色部分的id是top,而灰色部分的id是main。

    window.onload=function(){
    var main = document.getElementById('main');
    // 拖动
    var top = document.getElementById('top');
    // 设置点击
    top.onmousedown = function(event){  
          fndown(event,main);
        }
    }

    上面部分很简单,首先取到蓝色部分的元素,和主要的元素,为top元素设置鼠标点击事件。点击后调用以下函数:

    function fndown(event,main){
             event = event || window.event;
             var disX = event.clientX - main.offsetLeft,
             disY = event.clientY - main.offsetTop;
             document.onmousemove = function(event){
                 event = event || window.event;
                 fnMove(event,disX,disY,main);
             }
             top.onmouseup = function(){
                 document.onmousemove = null;
                 top.onmouseup = null;
             }
    }

    在这个函数内,我们首先获取到当前的鼠标位置和main元素相距上左两面的距离,计算得出鼠标在元素内距离元素上左两端的距离。
    注意这里的拖动事件只能挂载在document上,否则只有鼠标在元素内才可以拖动,如果鼠标出了元素就无法拖动,用户体验不好。当然鼠标点击的事件onmousedown和鼠标松开的事件onmouseup都是挂载在top元素上的。
    下面是鼠标移动的函数:

    function fnMove(event,disX,disY,main){
            var l = event.clientX - disX,
            t = event.clientY - disY;
            main.style.left=l+'px';
            main.style.top=t+'px';
    }

    这里我们先获取到鼠标移动的位置,本来我们直接设置main距离左边和上边的距离就是鼠标位置可以实现拖动吗?答案是可以的。鼠标位置不断更新,main距离左边和上边的距离也不断变化,是不是就实现了拖动呢。尝试一下就发现这样是 有bug 的。因为对位置的更新默认就是对元素的左上角的位置进行更新,如果这样做,我们一拖动就会发现鼠标的位置变到了main元素的左上角,这样就很不和谐。
    因此我们要将鼠标距离元素边界的位置计算出来并减去,减去过后的值就是main元素左上角距离浏览器左上角的距离。

  • 您还可以看一下 赖国荣老师的HTML网页设计语言入门基础教学视频课程中的 简单的javascript讲解小节, 巩固相关知识点