canvas在不同浏览器中高度限制问题
来源:互联网 发布:飞歌开拓者3端口 编辑:程序博客网 时间:2024/05/04 19:30
最近遇上项目上有一个绘制大尺寸表格的问题,产品中封装的表格控件在支持HTML5的浏览器上采用画布展示,但是绘制的行数过多后发现展示不全的问题,经过查阅资料和写demo测试,发现主流浏览器对canvas的尺寸做了一定的限制。
测试代码如下:
<!DOCTYPE html><html> <head> <meta charset='utf-8'> </head> <body> <canvas id="a_canvas" width="300" height="8192"></canvas> <script type="text/javascript"> (function (){ window.addEventListener("load", function(){ var a_canvas = document.getElementById('a_canvas'); var context = a_canvas.getContext("2d"); var gradient = context.createLinearGradient(0,0,0,300); gradient.addColorStop(0,"#e0e0e0"); gradient.addColorStop(1,"#ffffff"); context.fillStyle = gradient; context.fillRect(0,0,a_canvas.width,a_canvas.height); var grid_cols = 10; var grid_rows = 400; var cell_height = a_canvas.height / grid_rows; var cell_width = a_canvas.width / grid_cols; context.lineWidth = 1; context.strokeStyle = "#a0a0a0"; context.beginPath(); for (var col = 0; col <= grid_cols; col++) { var x = col * cell_width; context.moveTo(x,0); context.lineTo(x,a_canvas.height); } for(var row = 0; row <= grid_rows; row++){ var y = row * cell_height; context.moveTo(0,y); context.lineTo(a_canvas.width, y); } context.stroke(); },false); })(); </script> </body>经过测试发现IE9将画布的高度限制在8192px,既2的13次幂,但是这个限制貌似会受到电脑硬件的影响,如果电脑配置足够高,IE的高度限制也会增高,超过规定的高度限制,超过的部分在IE9上无法渲染。
chrome55.0.2868.3和firefox49.0.2都将canvas的高度限制在32767px,2的15次幂减1,超过高度限制,整个画布在浏览器上无法渲染。
测试结果只针对我本地的环境,如果有错误的地方,欢迎指正。
0 0
- canvas在不同浏览器中高度限制问题
- 兼容在不同浏览器不同分辨率下DIV高度自适应
- canvas 画布在主流浏览器中的尺寸限制详细介绍
- Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。
- 浅谈CSS在不同的浏览器控制自适应高度
- 如何解决css样式表在不同浏览器中显示效果不同的问题
- 解决在不同浏览器中使用空格符效果不同的问题
- 如何解决css样式表在不同浏览器中显示效果不同的问题
- 如何解决css样式表在不同浏览器中显示效果不同的问题
- 不同浏览器Cookie的限制
- 字符串连接在不同浏览器中效率
- flash动画在不同浏览器中播放
- jQuery中调用ajax方法时在不同浏览器中遇到的问题
- 解决html中 在不同浏览器中占位大小不统一的问题
- 有关不同浏览器不同版本的css以及js计算高度的问题
- 文本域textarea 在不同浏览器大小不同问题
- 两个div块中的文字所占用的高度在不同浏览器中不一致,此时应设置两个div块中height和line-height
- Canvas 在Android手机的某些浏览器中绘制两次
- suse 搭建opensis
- 混合开发的大趋势之一React Native手势行为那些事
- 5.1 类、超类和子类
- Java反射之获取类的信息
- 安卓仿IOS日期或时间选择器WheelPicker
- canvas在不同浏览器中高度限制问题
- 如何用Math.max.apply()获取数组最大/小值
- 重写shiro跳转路劲loginUrl、successUrl等
- js滚动刷屏小实例
- 游戏服务器中的契约式编程与防御式编程
- ajax实例
- 5.2 Object类,所有类的超类
- POI创建Excel创建多个工作表
- Linux下的v4l2开发流程