陈建华的博客
专注web开发
发布时间 : 2016-03-01 17:25:13     Tags : javascript

纯JavaScript实现HTML5 Canvas六种特效滤镜 小试牛刀,实现了六款简单常见HTML5 Canvas特效滤镜,并且封装成一个纯JavaScript可调用的API文件gloomyfishfilter.js。支持的特效滤镜分别为:反色灰色调模糊浮雕雕刻镜像滤镜原理解释:1.反色:获取一个像素点RGB值r, g, b则新的RGB值为(255-r, 255-g, 255-b)2.灰色调:获取一个像素点RGB值r, g, b则新的RGB值为 newr = (r * 0.272) + (g * 0.534) + (b * 0.131); newg = (r * 0.349) +

发布时间 : 2016-02-26 10:55:56     Tags : javascript

在画布上输出文本之前,检查字体的宽度:var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");ctx.font="30px Arial";var txt="Hello World"ctx.fillText("width:" + ctx.measureText(txt).width,10,50)ctx.fillText(txt,10,100);浏览器支持Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 measureText() 方法。注释:Internet

发布时间 : 2016-02-22 09:16:41     Tags : javascript

日本程序员norahiko,写了一个排序算法的动画演示,非常有趣。这个周末,我就用它当做教材,好好学习了一下各种排序算法。http://jsdo.it/norahiko/oxIy/fullscreen排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。它是图灵奖得主C. A. R. Hoare(1934--)于1960时提出来的。"快速排序"的思想很简单,整个排序过程只需要三步:在数据集之中,选择一个元素作为"基

发布时间 : 2016-02-21 17:31:46     Tags : javascript

今天在51js论坛中看到一个网友发布了一个javasctipt实现的快速排序的算法,前些日子工作中也涉及到javasctipt中数据排序的应用,当时为了提高排序速度,使用的也是快速排序的算法。但是让我感到意外的是,下面有个网友回复说,javascript中的Array本身的sort方法才是最快的,比快速排序算法都快,当时看到了很是郁闷,因为当时花了好长时间在排序算法上,居然忘记了Array本身的sort方法 不过javascript中内置的sort方法真的比快速排序算法还快吗? 哈哈,测试一下不就知道了 先说一下我测试的环境 1,我的测试环境是IE6.0和firefox2.0 2,每种算法有很

发布时间 : 2016-01-30 00:13:49     Tags : javascript

我当初犯的大错误:请你一定记清楚了:ctx.drawImage(img,0,0);改为img.onload = function(){ctx.drawImage(img,0,0);}只有img 加载完了 你画它才有意义。

发布时间 : 2016-01-29 16:09:44     Tags : javascript

目前, 支持HTML 5的浏览器和Windows 8 Metro成为了游戏开发的候选方案。利用canvas(画布)可以实现硬件加速,你可以在上面绘制游戏的内容,通过一些技巧可以达到每分钟60帧的渲染速度 在游戏中,fluidity(流畅性)这一概念非常重要,因为好的流畅性能带给玩家更好的体验。 这篇文章的主旨在于教你一些技巧,让你可以最大程度地发挥HTML5 canvas的潜能。 我将通过一个例子来表达我要讲的内容。这个例子是2D tunnel effect(2D隧道效应),它是我为Coding4Fun 会议写的(我参加了在法国举办的TechDays 2012)。(http:

发布时间 : 2016-01-15 16:14:56     Tags : javascript

加密和解密的方法,都是可以相互转换的。而且支持中文,也解决了参数有特殊字符,通过url传值的问题。加密模块:function panEncrypt(str, pwd) { if (pwd == null || pwd.length <= 0) { alert("Please enter a password with which to encrypt the message."); return null; } var prand = ""; for ( var i = 0; i < pwd.length; i++) { prand += pwd.charCodeAt(i).toStri

发布时间 : 2015-09-10 11:34:33     Tags : javascript

在ie9下面,出现了一个非常头疼的问题。调用window.print()对文档进行打印。但是一直不弹打印对话框。结果我刷新页面,页面加载完成之后,打印对话框自动弹出来了。function printDiv() { var divToPrint = document.getElementById('printArea'); newWin= window.open(); newWin.document.write(divToPrint.innerHTML); newWin.print(); newWin.close();}上面的代码就是我的代码。出现这样的问题,有一个

发布时间 : 2015-02-02 14:40:43     Tags : javascript

HTMLParser具有小巧,快速的优点,缺点是相关文档比较少(英文的也少),很多功能需要自己摸索。对于初学者还是要费一些功夫的,而一旦上手以后,会发现HTMLParser的结构设计很巧妙,非常实用,基本你的各种需求都可以满足。 这里我根据自己这几个月来的经验,写了一点入门的东西,希望能对新学习HTMLParser的朋友们有所帮助。(不过当年高考本人语文只比及格高一分,所以文法方面的问题还希望大家多多担待) HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数: public

发布时间 : 2014-12-16 11:30:44     Tags : javascript

invert方法确实好用,给他一个值,他就能返回对应的X轴的值。但是他只在d3.date.scale里面有。在d3.scale.ordinal()里面,却不存在,再查阅了网上的英文资料后,才发现,这个可以自己来搞一个。今天就将其记录下来var barLabels = dataset.map(function(datum) { return datum.image;});console.log(barLabels);var imageScale = d3.scale.ordinal() .domain(barLabels) .rangeRoundBands([0

微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航