本文适合适合对canvas绘制.图形学.前端可视化感兴趣的读者阅读. 楔子 所有的事情都会有一个起因.最近产品上需要做一个这样的功能:给一些图形进行染色处理.想想这还不是顺手拈来的事情,早就研究过图形染色的技术.于是我把之前写好的两种算法发给了小伙伴,让他参照实现,第一种算法是操纵像素.第二种使用了图像合成:globalCompositeOperation.所有的事情都可能会有意外,写程序更是如此了.没多久,小伙伴说,第二种算法在firefox下不起作用. 探索原因 听说有bug,心中一惊.我测…
SVG与Canvas是HTML5上绘制图形应用的两种完全不同模式的技术,两种绘制图形方式各有优缺点,但两者并非水火不容,尤其是SVG内容可直接绘制在Canvas上的功能,使得两者可以完美的融合在一起,让Canvas可享用到现有丰富的SVG素材,并不失SVG矢量无级缩放的特点. <基于HTML5的Drag and Drop生成图片Base64信息>这篇虽然展示的是拖拽普通栅格图片的效果,但你也可以直接拖拽SVG格式的图片进行显示,只不过普通图片的格式数据为data:image/png类型,而SV…
canvas 元素用于在网页上绘制图形. 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的方法. 创建 Canvas 元素 向 HTML5 页面添加 canvas 元素. 规定元素的 id.宽度和高度: <canvas id="myCanvas" width="200" height="1…
Canvas and Drawables 安卓提供了一组绘制二维图形的 API(参考官方文档:Canvas and Drawables | Android Developers),这组 API 允许开发者通过将自定义图形绘制到画布上或修改现有视图来实现视图的定制,绘制二维图形,通常有以下两种方式: 在布局文件中引入自定义视图或动画,这种方式的图形绘制会交由系统来处理,你只需要将自定义图形引入视图. 直接将图形绘制到画布上,这种方式的绘制就需要开发者重写并调用对应类的 onDraw(android…
我们知道,清空canvas画布内容有以下两个方法. 第一种方法是cearRect函数: context.cearRect(0,0,canvas.width,canvas.height) 第二种方法就是用原值重新设置一下canvas的宽(或者高) canvas.width = canvas.width // or canvas.height = canvas.height 第二种方法可以起作用,是因为canvas的一个特点: 每当画布的高度或宽度被重设时,画布内容就会被清空.相关内容可以参考htt…
经过 canvas 教程(一) 简介 我们知道了 canvas 的一些基本情况 而本次是给大家带来直线的绘制 canvas 中,基本图形有两种,一种是直线,还有一种是曲线 但是无论是直线还是曲线,我们都应该先了解 canvas 的坐标系 s canvas 的坐标系 要绘制之前肯定要了解一下 canvas 的坐标系,我们之前肯定接触过数学坐标系:y 轴正方向是向上的 其实在前端领域里几乎所有的坐标系都是使用的 w3c 的坐标你,canvas 也是一样,w3c 的坐标系和数学坐标系的区别就在于:w3…
有个功能,需要用drag drop api 来做. 发现在firefox下拖放,会出现新的tab 页签,即使在ondragover.ondrop中使用了event.preventDefault也无济于事,在mozllia上MDN的例子拖动也会弹出新的tab 页签. 随后发现有同事写的drag drop 在firefox下不会弹出,遂研究起来,发现用的dataTransfer.setData("asdf",""),同事只是用了drag drop的效果,没有用dataT…
最近调查一个浏览器兼容性问题,在 IE, chrome下都运行正常,但是在 firefox 下运行时: $.parseJson(xxx) 返回 null,所以导致了 无法正常运行,调查的结果是因为 返回是,没有使用下面的语句定义返回值的类型: response.setContentType("text/html; charset=utf-8"); 导致了 firefox 以为返回的 是 xml 数据(alert时弹出 xml object),导致 $.parseJson(xx) 对返回…
前言: 项目中用到了一个功能,搜索框里有默认的文字,当搜索框获得焦点时里面的默认文字消失,如果失去焦点时搜索框内容为空则让里面的内容回复默认!,. 实现: 很轻松的在网上找到了类似代码 $("#search_text").focus(function (event) { with (event.srcElement) //如果当前值为默认值,则清空 if (value == defaultValue) value = ""; }); $("#search_…
http://wu110cheng.blog.163.com/blog/static/13334965420121120102439190/ Firefox下网页缩放时防止div被挤到下一层 问题:三个div,一个div中包含两个浮动带有border边框的div:且样式设计中保证两个div全部宽度之和等于外层div的宽度.在火狐下缩放网页显示比例小于100%时,会导致右边div被挤到下一行. 案例: <style> *{ margin:0; padding:0;} #box{width:300…