使用原生js自己寫或js庫(框架)都是可以的,由于目前HTML5并不是所有的瀏覽器都完美支持,使用兼容性比較好的js庫是個不錯的選擇。
我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、建湖ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的建湖網(wǎng)站制作公司
例如Highcharts圖標庫就可以實現(xiàn)各類曲線圖、折線圖、區(qū)域圖、3D圖、柱狀圖等等。具體使用參考:。
Highcharts中做折線圖的demo代碼可以作為參考:
html?lang="en"
head
script?type="text/javascript"?src=""/script
script?type="text/javascript"?src=""/script
script?type="text/javascript"?src=""/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?+'/bbr/'+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:700px;height:400px"/div
/body
/html
script代碼
var g=canvas.getContext("2d");
g.beginPath();
g.strokeStyle="#F00";
g.moveTo(0,0);
g.bezierCurveTo(300,0, 0,300, 200,200);
g.stroke();
圖表的背景一般是精心設(shè)計的它有一定的梯度、網(wǎng)格線、號碼標簽和月份名稱等等,如果直接通過JavaScript進行繪制可能需數(shù)十行或上百行的代碼。但是如果我們直接通過Canvas直接創(chuàng)建一個背景圖。我們只需要在其他的軟件如PS上繪制好一個背景圖,然后加載到Canvas上就可以了。
!DOCTYPE html
html
head
meta charset="utf-8"
title繪制圖表/title
/head
body
div id="result-stub" class="well hidden"
canvas id="canvas" width="345" height="345"
p你的瀏覽器不支持canvas元素/p
/canvas
/div
script
// ??1、要繪制圖表首先我們要獲取到canvas對象以及具有圖表背景的圖片對象。
var
canvas = document.getElementById('canvas'),
context = null;
context = canvas.getContext('2d');
var img = new Image();
img.src ='chart-background.png';//這里是一張具有圖表背景的圖片
// ???2、繪制一個具有圖表背景的圖片后再根據(jù)要繪制的曲線圖各個點在canvas是中的坐標繪制直線。
img.onload = function() {
//繪制圖片
context.drawImage(img, 0, 0);
//繪制直線
context.beginPath();
context.moveTo(70, 105);
context.lineTo(105, 132);
context.lineTo(142, 250);
context.lineTo(176, 175);
context.lineTo(212, 145);
context.lineTo(245, 197);
context.lineTo(280, 90);
context.stroke();
}
/script
script src="jquery.js"/script
/body
/html
3、本示例的最終繪制效果如下:這樣一個曲線圖表就繪制出來的,其他的圖表也可以用類似的方法進行繪制。
這些都是有關(guān)于HTML5新特性的一些應(yīng)用。給你推薦一個教程網(wǎng)站秒秒學(xué),該網(wǎng)站上有關(guān)于HTML5新特性的講解。
!DOCTYPE html
html
head
titleCos演示/title
meta charset='utf-8'
/head
body style='a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dhmynLuj0vuH01rj9-rjI90ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT4PH6kPjcsrHf3Pj0LPHcvPs" target="_blank" class="baidu-highlight"text-align/a:center'
canvas width='800' height='600' id='canvas' style='border:1px solid'
/canvas
script
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
function drawAxis(){
ctx.translate(400,300);
//x 軸
ctx.beginPath();
ctx.moveTo(-380,0);
ctx.lineTo(380,0);
ctx.lineTo(372,3);
ctx.lineTo(372,-3);
ctx.lineTo(380,0);
ctx.stroke(); //描邊
//y 軸
ctx.moveTo(0,200);
ctx.lineTo(0,-200);
ctx.lineTo(3,-192);
ctx.lineTo(-3,-192);
ctx.lineTo(0,-200);
ctx.stroke(); //描邊
//畫坐標
ctx.save();
ctx.strokeStyle='rgba(100,100,255,0.5)';
ctx.moveTo(-Math.PI*100,100);
ctx.lineTo(-Math.PI*100,-100);
ctx.lineTo(Math.PI*100,-100);
ctx.lineTo(Math.PI*100,100);
ctx.lineTo(-Math.PI*100,100);
ctx.stroke(); //描邊
ctx.fillStyle='rgba(0,0,0,1)';
ctx.fillText("-π",-Math.PI*100,10);
ctx.fillText("π",Math.PI*100,10);
ctx.fillText("-1",5,100);
ctx.fillText("1",5,-100);
ctx.restore();
}
function drawCos(){
var x = -Math.PI*100;
ctx.beginPath();
ctx.moveTo(x,100);
for(x = -Math.PI*100;xMath.PI*100;x++){
var cx = x/100;
var cy = Math.cos(cx);
var y = -cy*100;
ctx.lineTo(x,y);
}
ctx.stroke(); //描邊
}
function draw(){
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.save();
ctx.shadowColor='rgba(0,0,0,0.8)';
ctx.shadowOffsetX=12;
ctx.shadowOffsetY=12;
ctx.shadowBlur=15;
drawAxis();
drawCos();
ctx.restore();
}
ctx.fillStyle='rgba(100,140,230,0.5)';
ctx.strokeStyle='rgba(33,33,33,1)';
draw();
/script
/body
/html