html怎么用js特效做折线图

html-css031

html怎么用js特效做折线图,第1张

使用原生js自己写或js库(框架)都是可以的,由于目前HTML5并不是所有的浏览器都完美支持,使用兼容性比较好的js库是个不错的选择。

例如Highcharts图标库就可以实现各类曲线图、折线图、区域图、3D图、柱状图等等。具体使用参考:http://www.hcharts.cn/demo/index.php。

Highcharts中做折线图的demo代码可以作为参考:

<html lang="en">

<head>

  <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>

  <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script>

  <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/exporting.js"></script>

  <script>

    $(function () {

    $('#container').highcharts({

        chart: {

            type: 'line'

        },

        title: {

            text: 'Monthly Average Temperature'

        },

        subtitle: {

            text: 'Source: WorldClimate.com'

        },

        xAxis: {

            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

        },

        yAxis: {

            title: {

                text: 'Temperature (°C)'

            }

        },

        tooltip: {

            enabled: false,

            formatter: function() {

                return '<b>'+ this.series.name +'</b><br/>'+this.x +': '+ this.y +'°C'

            }

        },

        plotOptions: {

            line: {

                dataLabels: {

                    enabled: true

                },

                enableMouseTracking: false

            }

        },

        series: [{

            name: 'Tokyo',

            data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]

        }, {

            name: 'London',

            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]

        }]

    })

})

  </script>

</head>

<body>

  <div id="container" style="min-width:700pxheight:400px"></div>

</body>

</html>

canvas能做什么?

canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形、图标、以及其它任何视觉性图像。它也可用于创建图片特效和动画。如果你掌握了完整的命令,你可以用canvas创建丰富的web应用程序。如果你想很好的使用canvas,你首先应该很好的掌握javascript。

这篇文章是一篇基础教程,你能了解一些设计方法。比如用HTML5 canvas 进行图形设计。

用HTML5 canvas设计

设计和开发一个web页面会包含很多的内容,用户首先需要有一个支持HTML canvas的浏览器。

首先创建一个HTML5文档页面,设置document type是HTMl5的;

其次在页面body区域添加一个canvas标签:

<canvas></canvas>

第三、给这个canvas定义一个id属性,这样方便我们在js中调用它。添加一个宽和高属性,在canvas标签中添加一个当浏览器不支持的时候显示给用户的内容。下面是列子代码:

<canvas id="canvastest" width="500" height="600">

<p>你的浏览器不支持HTML5 canvas,请更新您的浏览器!</p>

</canvas>

现在我们创建了一个包含HTML5 canvas 元素的空白画布,我们将使用js和canvas元素的方法来创建我们的图像。

添加一个javascript用HTMl5 canvas的方法:

var canvasTest=document.getElementById('canvastest')//获取canvas元素;

var testcontext=canvasTest.getContext('2d')

使用javascript来创建你的画布,你可以使用矩形、圆圈和三角形,并使用线、幻灯片和渐变来创建你的设计。

下面是完成的代码:

var canvasTest=document.getElementById('canvastest')

var testcontext=canvasTest.getContext('2d')

// create rectangle

testcontext.fillStyle='rgb(0,125,125)'

testcontext.fillRect(10,10,250,180)

// create circle

testcontext.beginPath()

testcontext.arc(300, 340, 100, 0, Math.PI * 2, true)

testcontext.closePath()

testcontext.fillStyle='rgb(75,10,125)'

testcontext.fill()

testcontext.stroke()

我们可以将上面的代码加入window.onload,或者jQuery的ready方法里,当文档加载完,将会创建文明的图形。

一些HTML5 canvas 图像解决方案

用与HTML5 Canvas元素你可以开发动态绘图对象比如如可视化信息或数据图。HTML5 canvas 可以在javascript的帮助下很容易的绘制二维图形。让我们来看一下HTML5 canvas元素的一些数据图应用。

1. HumbleFinance

HumbleFinance是用js开发的一个开源的数据可视化图表,它用HTML5 canvas生成可视化图表数据,它可以用一个轴来展示任何两个二维的数据集。

地址: http://www.humblesoftware.com/finance/index

2.Graphr

Graphr是一个用HTML5 canvas写的一个计算器应用,有每个图像计算器应有的基本功能。

地址:http://www.graphr.org/

3.用HTML5和jQuery创建的华丽的动画饼图

你可以用javascript和HTML5来创建一个交互式饼图,有华丽的动画效果。这在之前只能用flash来完成,现在也可以使用最新的HTML5技术了。

地址:http://cyberpython.github.com/AwesomeChartJS/

4. AwesomeJS

AwesomeJS 能够让你创建简单有用的图表,而仅需几行代码即可。这是一个基于HTML5和canvas的javascript库。

地址:http://cyberpython.github.com/AwesomeChartJS/

5.Ticker Plot(股票图)

Ticker Plot(股票图)是每一个在工作是使用图标的web开发人员都必备的一个图表工具。这是一个开源的项目,它使用HTML5 canvas在画布上绘制图形符号和鼠标事件。Ticker Plot(股票图)是专门为股票行情和技术分析设计的。

只用html的话应该比较困难

想要实时显示一般要用到楼上说的Ajax和后台脚本语言(例如asp、php,用来后台查询数据),还有数据库(用来存放采集过来的数据,嫌数据库麻烦的话可以用文本文件代替)

画简单折线图的话可以用html5的canvas+JavaScript,复杂点的就需要用插件了

希望能帮到你