Html5 canvas 绘制彩票走势图
来源:互联网 发布:淘宝申请售后多久过期 编辑:程序博客网 时间:2024/04/27 16:25
因需要 要实现一个类似彩票走势图的功能,初次学Html5 ,很多地方不明白,前段时间也发帖请教过这个问题,也是没给个明确说话,在网上搜了很多,也没有实现的例子,今天仔细研究了下,发现其实也不是很难,现将代码贴出来,共同学习!
先来一张效果图:
实现的代码:
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="js/jquery-1.10.2.js"></script> <style> table { border: 0; margin: 0; border-collapse: collapse; border-spacing: 0; font-size: 11px; font-family: Arial; margin: 0 auto; } table td, table th { padding: 0; border: 1px solid #d8d8d8; height: 23px; width: 23px; text-align: center; color: #666; } table th { font-weight: bold; color: #000; } </style> <script type="text/javascript"> $(function () { CreateTable(); var ids = ""; for (var i = 1; i < 31; i++) { ids+= "T" + i + "_" + Math.floor(1 + Math.random() * (31 - 1)) + ","; } ids = ids.substring(0, ids.length - 1); CreateLine(ids, 20, "#ff6600", "canvasdiv", "#d5d5d5"); }); function CreateTable() { var tbody = ""; var head = "<tr>"; for (var i = 1; i < 31; i++) { head += "<th>H" + i + "</th>"; tbody += "<tr>"; for (var j = 1; j < 31; j++) { tbody += "<td id='T" + i + "_" + j + "'>" + j + "</td>"; } tbody += "</tr>"; } head += "</tr>"; $("#zstable thead").html(head); $("#zstable tbody").html(tbody); } function CreateLine(ids, w, c, div, bg) { var list = ids.split(","); for (var j = list.length - 1; j > 0; j--) { var tid = $("#" + list[j]); var fid = $("#" + list[j - 1]); var f_width = fid.outerWidth(); var f_height = fid.outerHeight(); var f_offset = fid.offset(); var f_top = f_offset.top; var f_left = f_offset.left; var t_offset = tid.offset(); var t_top = t_offset.top; var t_left = t_offset.left; var cvs_left = Math.min(f_left, t_left); var cvs_top = Math.min(f_top, t_top); tid.css("background", bg).css("color", "red"); fid.css("background", bg).css("color", "red"); var cvs = document.createElement("canvas"); cvs.width = Math.abs(f_left - t_left) < w ? w : Math.abs(f_left - t_left); cvs.height = Math.abs(f_top - t_top); cvs.style.top = cvs_top + parseInt(f_height / 2) + "px"; cvs.style.left = cvs_left + parseInt(f_width / 2) + "px"; cvs.style.position = "absolute"; var cxt = cvs.getContext("2d"); cxt.save(); cxt.strokeStyle = c; cxt.lineWidth = 1; cxt.lineJoin = "round"; cxt.beginPath(); cxt.moveTo(f_left - cvs_left, f_top - cvs_top); cxt.lineTo(t_left - cvs_left, t_top - cvs_top); cxt.closePath(); cxt.stroke(); cxt.restore(); $("#" + div).append(cvs); } } </script></head><body> <form id="form1" runat="server"> <table id="zstable"> <thead></thead> <tbody></tbody> </table> <div id="canvasdiv"> </div> </form></body></html>
0 0
- Html5 canvas 绘制彩票走势图
- HTML5 Canvas 绘制股市走势图
- 彩票走势图
- java 彩票走势图算法
- 【Html5】canvas绘制圆形
- html5 canvas 绘制钟表
- HTML5 Canvas: 绘制矩形
- HTML5 canvas 绘制圆形
- html5 canvas绘制路径
- HTML5 Canvas 绘制图像
- html5 canvas 绘制曲线图
- HTML5---Canvas绘制
- HTML5---canvas绘制七巧板
- Html5 Canvas 绘制 时钟
- html5之canvas绘制
- HTML5 Canvas 绘制路径实例
- html5 canvas 绘制贝塞尔曲线
- html5 canvas基本图形绘制
- 【图解】抽象工厂模式PK建造者模式
- poj1459最大流
- android 图片点击放大
- Linked List Cycle II
- 前端防止按钮被多次点击
- Html5 canvas 绘制彩票走势图
- QT学习笔记第0篇
- 安装mysql详解
- Myeclipse中Android模拟器 公司代理上网设置[图文详解]
- Android Launcher分析和修改8——AllAPP界面拖拽元素(PagedViewWithDraggableItems)
- 几种不同的alertDialog示例
- 【LeetCode】Construct Binary Tree from Inorder and Postorder Traversal
- Struts2为什么可以用EL表达式取值?
- Android 屏幕适配