展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

vis.js动态样式折线图

  • 代码案例
<!doctype html>
<html>
<head>
  <title>Timeline</title>
  <script type="text/javascript" src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script>
  <link href="https://unpkg.com/vis-timeline@latest/styles/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" />
  <style type="text/css">
    body,
    html {
        font-family: sans-serif;
    }

    #visualization {
        width: 600px;
    }
  </style>
</head>
<body>    
    <table>
    <colgroup>
        <col width="600" />
        <col width="220" />
    </colgroup>
    <tbody>
        <tr>
        <td style="padding-right: 20px; border-right: 1px solid">
            <div id="visualization"></div>
        </td>
        <td style="padding-left: 5px">
            <table style="font-size: 12px">
            <colgroup>
                <col width="150" />
                <col width="50" />
            </colgroup>
            <tbody>
                <tr>
                <td>Line Color</td>
                <td>
                    <select id="color" onchange="updateStyle()">
                    <option value="stroke:green;">green</option>
                    <option value="stroke:red;">red</option>
                    <option value="stroke:blue;" selected="selected">blue</option>
                    <option value="stroke:black;">black</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Line Style</td>
                <td>
                    <select id="line" onchange="updateStyle()">
                    <option value="stroke-dasharray:1 0;" selected="selected">
                        line
                    </option>
                    <option value="stroke-dasharray:10 10;">dash</option>
                    <option value="stroke-dasharray:2 2;">dot</option>
                    <option value="stroke-dasharray:10 5 2 5;">dash-dot</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Line thickness</td>
                <td>
                    <select id="thickness" onchange="updateStyle()">
                    <option value="stroke-width:0;">0</option>
                    <option value="stroke-width:1;">1</option>
                    <option value="stroke-width:2;" selected="selected">2</option>
                    <option value="stroke-width:3;">3</option>
                    <option value="stroke-width:4;">4</option>
                    <option value="stroke-width:5;">5</option>
                    <option value="stroke-width:6;">6</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Fill Position</td>
                <td>
                    <select id="fill" onchange="updateStyle()">
                    <option value="">none</option>
                    <option value="top">top</option>
                    <option value="bottom">bottom</option>
                    <option value="zero" selected="selected">zero</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Fill Color</td>
                <td>
                    <select id="fillcolor" onchange="updateStyle()">
                    <option value="fill:green;">green</option>
                    <option value="fill:red;">red</option>
                    <option value="fill:blue;" selected="selected">blue</option>
                    <option value="fill:black;">black</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Fill Opacity</td>
                <td>
                    <select id="fillopacity" onchange="updateStyle()">
                    <option value="fill-opacity:0.1;">0.1</option>
                    <option value="fill-opacity:0.2;">0.2</option>
                    <option value="fill-opacity:0.3;">0.3</option>
                    <option value="fill-opacity:0.4;">0.4</option>
                    <option value="fill-opacity:0.5;">0.5</option>
                    <option value="fill-opacity:0.6;" selected="selected">
                        0.6
                    </option>
                    <option value="fill-opacity:0.7;">0.7</option>
                    <option value="fill-opacity:0.8;">0.8</option>
                    <option value="fill-opacity:0.9;">0.9</option>
                    <option value="fill-opacity:1;">1</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Points Shape</td>
                <td>
                    <select id="points" onchange="updateStyle()">
                    <option value="">none</option>
                    <option value="circle">circle</option>
                    <option value="square" selected="selected">square</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Points Size</td>
                <td>
                    <select id="pointsize" onchange="updateStyle()">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6" selected="selected">6</option>
                    <option value="8">8</option>
                    <option value="10">10</option>
                    <option value="15">15</option>
                    <option value="20">20</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Points Color</td>
                <td>
                    <select id="pointcolor" onchange="updateStyle()">
                    <option value="stroke:green;">green</option>
                    <option value="stroke:red;">red</option>
                    <option value="stroke:blue;" selected="selected">blue</option>
                    <option value="stroke:black;">black</option>
                    </select>
                </td>
                </tr>
                <tr>
                <td>Point Line Thickness</td>
                <td>
                    <select id="pointthickness" onchange="updateStyle()">
                    <option value="stroke-width:0;">0</option>
                    <option value="stroke-width:1;">1</option>
                    <option value="stroke-width:2;" selected="selected">2</option>
                    <option value="stroke-width:3;">3</option>
                    <option value="stroke-width:4;">4</option>
                    <option value="stroke-width:5;">5</option>
                    <option value="stroke-width:6;">6</option>
                    </select>
                </td>
                </tr>
                <tr></tr>
                <tr>
                <td>Points Fill Color</td>
                <td>
                    <select id="pointfill" onchange="updateStyle()">
                    <option value="fill:green;">green</option>
                    <option value="fill:red;">red</option>
                    <option value="fill:blue;" selected="selected">blue</option>
                    <option value="fill:black;">black</option>
                    </select>
                </td>
                </tr>
            </tbody>
            </table>
        </td>
        </tr>
    </tbody>
    </table>

    
<script type="text/javascript">
    var container = document.getElementById("visualization");
    var items = [
    { x: "2014-06-11", y: 10, group: 0 },
    { x: "2014-06-12", y: 25, group: 0 },
    { x: "2014-06-13", y: 30, group: 0 },
    { x: "2014-06-14", y: -10, group: 0 },
    { x: "2014-06-15", y: 15, group: 0 },
    { x: "2014-06-16", y: 30, group: 0 },
    ];

    var dataset = new vis.DataSet(items);
    var options = {
    start: "2014-06-10",
    end: "2014-06-18",
    dataAxis: {
        showMinorLabels: false,
        icons: true,
    },
    };

    var groupData = {
    id: 0,
    content: "Group Name",
    options: {
        drawPoints: {
        style: "square", // square, circle
        },
        shaded: {
        orientation: "zero", // top, bottom
        },
    },
    };

    var groups = new vis.DataSet();
    groups.add(groupData);

    var graph2d = new vis.Graph2d(container, dataset, groups, options);
    updateStyle();

    function updateStyle() {
    groupData.style = "";
    groupData.style += document.getElementById("color").value;
    groupData.style += document.getElementById("line").value;
    groupData.style += document.getElementById("thickness").value;

    groupData.options.drawPoints = {};
    groupData.options.drawPoints.styles = "";
    groupData.options.drawPoints.style = document.getElementById("points").value;
    groupData.options.drawPoints.styles +=
        document.getElementById("pointcolor").value;
    groupData.options.drawPoints.styles +=
        document.getElementById("pointthickness").value;
    groupData.options.drawPoints.styles +=
        document.getElementById("pointfill").value;
    groupData.options.drawPoints.size = Number(
        document.getElementById("pointsize").value
    );
    if (groupData.options.drawPoints.style == "") {
        groupData.options.drawPoints = false;
    }

    groupData.options.shaded = {};
    groupData.options.shaded.style = "";
    groupData.options.shaded.style += document.getElementById("fillcolor").value;
    groupData.options.shaded.style +=
        document.getElementById("fillopacity").value;
    groupData.options.shaded.orientation = document.getElementById("fill").value;
    if (groupData.options.shaded.orientation == "") {
        groupData.options.shaded = false;
    }

    var groups = new vis.DataSet();
    groups.add(groupData);
    graph2d.setGroups(groups);
    }

</script>
</body>
</html>
  • 效果图
点击查看详情

posted @ 2024-04-22 17:34  DogLeftover  阅读(17)  评论(0编辑  收藏  举报