日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游客显示的html代码,html5游客总数柱状图代码

發布時間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游客显示的html代码,html5游客总数柱状图代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

canvas制作簡單的每年游客人數統計柱狀圖表代碼。

使用方法:

body引入代碼,默認調用函數onLoad="barChart();"

您的瀏覽器不支持HTML5 Canvas

// 圖表數據

var arrVisitors = new Array();

arrVisitors[0] = "2007, 750";

arrVisitors[1] = "2008, 425";

arrVisitors[2] = "2009, 960";

arrVisitors[3] = "2010, 700";

arrVisitors[4] = "2011, 800";

arrVisitors[5] = "2012, 975";

arrVisitors[6] = "2013, 375";

arrVisitors[7] = "2014, 775";

var canvas;

var context;

// 圖表屬性

var cWidth, cHeight, cMargin, cSpace;

var cMarginSpace, cMarginHeight;

// 條形圖屬性

var bWidth, bMargin, totalBars, maxDataValue;

var bWidthMargin;

// 條形動畫

var ctr, numctr, speed;

// 軸屬性

var totLabelsOnYAxis;

// 條形圖構造函數

function barChart() {

canvas = document.getElementById('bchart');

if (canvas && canvas.getContext) {

context = canvas.getContext('2d');

}

chartSettings();

drawAxisLabelMarkers();

drawChartWithAnimation();

}

// 初始化圖表和條形圖值

function chartSettings() {

// 圖表屬性

cMargin = 25;

cSpace = 60;

cHeight = canvas.height - 2 * cMargin - cSpace;

cWidth = canvas.width - 2 * cMargin - cSpace;

cMarginSpace = cMargin + cSpace;

cMarginHeight = cMargin + cHeight;

// 條形圖屬性

bMargin = 15;

totalBars = arrVisitors.length;

bWidth = (cWidth / totalBars) - bMargin;

//找到要在圖表上繪制的最大值

maxDataValue = 0;

for (var i = 0; i < totalBars; i++) {

var arrVal = arrVisitors[i].split(",");

var barVal = parseInt(arrVal[1]);

if (parseInt(barVal) > parseInt(maxDataValue))

maxDataValue = barVal;

}

totLabelsOnYAxis = 10;

context.font = "10pt Garamond";

// 初始化動畫變量

ctr = 0;

numctr = 100;

speed = 10;

}

// 繪制圖表軸、標簽和標記

function drawAxisLabelMarkers() {

context.lineWidth = "2.0";

// 繪制y軸

drawAxis(cMarginSpace, cMarginHeight, cMarginSpace, cMargin);

//繪制x軸

drawAxis(cMarginSpace, cMarginHeight, cMarginSpace + cWidth, cMarginHeight);

context.lineWidth = "1.0";

drawMarkers();

}

//繪制X和Y軸

function drawAxis(x, y, X, Y) {

context.beginPath();

context.moveTo(x, y);

context.lineTo(X, Y);

context.closePath();

context.stroke();

}

//在X和Y軸上繪制圖表標記

function drawMarkers() {

var numMarkers = parseInt(maxDataValue / totLabelsOnYAxis);

context.textAlign = "right";

context.fillStyle = "#000";;

//y軸

for (var i = 0; i <= totLabelsOnYAxis; i++) {

markerVal = i * numMarkers;

markerValHt = i * numMarkers * cHeight;

var xMarkers = cMarginSpace - 5;

var yMarkers = cMarginHeight - (markerValHt / maxDataValue);

context.fillText(markerVal, xMarkers, yMarkers, cSpace);

}

//X軸

context.textAlign = 'center';

for (var i = 0; i < totalBars; i++) {

arrval = arrVisitors[i].split(",");

name = arrval[0];

markerXPos = cMarginSpace + bMargin

+ (i * (bWidth + bMargin)) + (bWidth/2);

markerYPos = cMarginHeight + 15; //X軸文字位置

context.fillText(name, markerXPos, markerYPos, bWidth);

}

context.save();

//添加Y軸標題

context.translate(cMargin + 10, cHeight / 2);

context.rotate(Math.PI * -90 / 180);

context.fillText('游客總數', 0, 0);

context.restore();

//添加X軸標題

context.fillText('年份', cMarginSpace +

(cWidth / 2), cMarginHeight + 30 );

}

function drawChartWithAnimation() {

//循環遍歷總條并繪制

for (var i = 0; i < totalBars; i++) {

var arrVal = arrVisitors[i].split(",");

bVal = parseInt(arrVal[1]);

bHt = (bVal * cHeight / maxDataValue) / numctr * ctr;

bX = cMarginSpace + (i * (bWidth + bMargin)) + bMargin;

bY = cMarginHeight - bHt - 2;

drawRectangle(bX, bY, bWidth, bHt, true);

}

// 超時運行并檢查是否已達到條

// 所需高度;如果不是,則繼續增長

if (ctr < numctr) {

ctr = ctr + 1;

setTimeout(arguments.callee, speed);

}

}

function drawRectangle(x, y, w, h, fill) {

context.beginPath();

context.rect(x, y, w, h);

context.closePath();

context.stroke();

if (fill) {

var gradient = context.createLinearGradient(0, 0, 0, 300);

gradient.addColorStop(0, 'yellow');

//gradient.addColorStop(1, 'rgba(67,203,36,.15)');

gradient.addColorStop(1, 'red');

context.fillStyle = gradient;

context.strokeStyle = gradient;

context.fill();

}

}

此圖表不可用,因為您的計算機上禁用了JavaScript。 請啟用

JavaScript并刷新此頁面以查看正在運行的圖表。

注:此資源非帝國CMS模板/特效/源碼,需要帝國CMS整站模板源碼的小伙伴,請移步 帝國CMS模板,感謝支持!

總結

以上是生活随笔為你收集整理的游客显示的html代码,html5游客总数柱状图代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 69性影院 | 美女啪啪网站 | 欧美性欧美zzzzzzzzz | 天天看片天天操 | 免费日韩网站 | 日韩福利 | 日本精品三级 | 香蕉视频在线观看网站 | 国产aⅴ一区二区三区 | 国产亚洲一区在线 | 在线永久看片免费的视频 | 成人一区av| 性感少妇av | 老司机深夜视频 | 国产精品久久久久久久久久久久久久久久 | 日本a级一区 | 天堂成人在线视频 | 亚洲卡一卡二 | 国产激情免费 | 精品深夜av无码一区二区老年 | 久久国色 | 亚洲精品电影在线 | 欧美女优一区 | 男生插女生的网站 | 久久综合狠狠综合久久综合88 | 日韩在线一二 | 女厕厕露p撒尿八个少妇 | 久久韩国| 瑟瑟久久| 婷婷久久五月天 | 日本高清视频www夜色资源 | 成人久久精品人妻一区二区三区 | avtt国产| 成人一区二区三区四区 | 亚洲黑丝在线 | 免费成人美女女 | 二区三区 | 樱花草涩涩www在线播放 | 男生脱女生衣服 | 91日韩视频 | 天天操免费视频 | 国产系列精品av | 久久精品国产亚洲AV黑人 | 91九色丨porny丨国产jk | 国产毛片久久久 | 在线观看亚洲一区二区 | 日韩小视频| 日本美女动态 | 欧洲一区二区在线 | 91a视频 | 蜜桃综合网 | 精品人妻中文无码av在线 | 欧美激情精品久久久久久 | 聚色屋| 在线视频观看免费 | 黑人av | 极品另类 | 日韩一级片网址 | 激情第四色 | 欧美精品日韩在线观看 | 亚洲av无码一区二区三区四区 | 澳门黄色一级片 | 色xxxxxx| 天天操天天碰 | 朴麦妮原版视频高清资源 | 无码人妻精品一区二 | 农村少妇久久久久久久 | 这里只有精品久久 | 国产在线一区二区三区 | 91福利网址 | 黄a毛片 | 91网站在线免费观看 | 国产欧美在线一区 | 精品欧美一区二区三区成人 | 天天躁日日躁狠狠躁 | 国产成人不卡 | 狠狠干夜夜 | 日韩一区二区三区不卡视频 | 台湾a级片 | 啄木乌欧美一区二区三区 | 一级片99| 亚洲色网址 | 国产成人影视 | 丝袜国产一区 | av天天看| 97精品一区二区视频在线观看 | 欧美一区二区三区在线观看视频 | 国产一级做a爱片久久毛片a | 欧美a网站 | 凹凸日日摸日日碰夜夜 | 米奇狠狠干 | 三年中文在线观看中文版 | 国产无遮挡又黄又爽免费网站 | 成人午夜视频一区二区播放 | 国产伦精品一区二区三区四区 | 国产成人精品一区二区在线观看 | 国产高清二区 | 裸体美女免费视频网站 | 中国超碰|