字中字效果的实现【html5实例】

所属分类: 网页制作 / html5 阅读数: 751
收藏 0 赞 0 分享

用html5实现如图字中有字效果

实现思路:用canvas输出文字,然后分析像素点,根据像素点输出文字。

核心代码:

JavaScript Code复制内容到剪贴板
  1. var canvas;   
  2. var ctx;   
  3. var tex;   
  4. var blankStr = "  ";//输出空白   
  5.     
  6. $(function () {   
  7.     
  8.     $("button#bt").click(function () {//绑定按钮单击事件   
  9.     
  10.         if ($("canvas#myCanvas").length > 0) {   
  11.             canvas = $("canvas#myCanvas")[0];   
  12.             ctx = canvas.getContext("2d");   
  13.         }   
  14.     
  15.         var tex = $("input#inpt").val();//获取输入框文字   
  16.         if (!tex) tex = "顶";//默认文字为"顶"   
  17.         if (tex.length > 1) { //只支持一个汉字   
  18.             alert("亲,少输入点字好吧,我吃不消呢~");   
  19.             return;   
  20.         }   
  21.     
  22.         var reg = /[\u4E00-\u9FA5]/g;//用正则表达式判断是否为汉字   
  23.         if (!reg.test(tex)) {   
  24.             alert("亲,输入一个汉字好吧,其他的我不认识呢~");   
  25.             return;   
  26.         }   
  27.     
  28.         ctx.fillStyle = "rgba(0,0,0,1)";//绘制底色   
  29.         ctx.fillRect(20, 20, 40, 40);    
  30. ?   
  31.         ctx.fillStyle = "rgba(255,255,255,1)"//绘制文字   
  32.         ctx.font = "bolder 40px 宋体";   
  33.         ctx.textBaseline = 'top';   
  34.         ctx.fillText(tex, 20, 20);   
  35.     
  36.         var panel = $("#panel");//汉字输出区域   
  37.         panel.html("");//清空历史汉字   
  38.     
  39.         for (y = 1; y < 40; y++) {   
  40.             for (x = 1; x < 40; x++) {   
  41.                 imageData = ctx.getImageData(20 + x, 20 + y, 1, 1);//获取灰度像素值   
  42.                 if (imageData.data[0] >180 ) {    //0为黑,255为白,取180是为了调控精度,确保不同浏览器都能有良好效果   
  43.                     panel.html(panel.html() + blankStr);   
  44.                 } else {   
  45.                     panel.html(panel.html() + tex);   
  46.                 }   
  47.             }   
  48.             panel.html(panel.html() + "<br>");   
  49.         }   
  50.     });   
  51.     
  52.     $("button#bt").click();//第一次加载是输出"顶"   
  53. });    

以上这篇字中字效果的实现【html5实例】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

原文地址:http://www.cnblogs.com/shouce/archive/2016/05/03/5453737.html

更多精彩内容其他人还在看

HTML5的标签的代码的简单介绍 HTML5标签的简介

本文主要介绍了HTML5的标签.不同于以前的标签.更简单.更方便
收藏 0 赞 0 分享

关于HTML5你必须知道的28个新特性,新技巧以及新技术

HTML5有很多的新功能.新代码.非常不错.现在总结一下.仅供参考
收藏 0 赞 0 分享

只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)

用CSS,HTML5打造一个漂亮的标签效果
收藏 0 赞 0 分享

网易微博Web App用HTML5开发的过程介绍

本文介绍了网易微博用HTML5开发的全过程
收藏 0 赞 0 分享

HTML5 对各个标签的定义与规定:body的介绍

本文主要介绍body标签
收藏 0 赞 0 分享

关于HTML5的安全问题开发人员需要牢记的

HTML5中的安全问题也要注意的
收藏 0 赞 0 分享

关于HTML5的22个初级技巧(图文教程)

HTML5来了.让我们看一下有什么技巧
收藏 0 赞 0 分享

开发人员所需要知道的HTML5性能分析面面观

以下这篇文章是由一位名为张黎明的IT技术人员所写,其发表于InfoQ的网页上。这次他在全文里面从9个不同的方面分析HTML5的性能,还是很值得相应的开发人员阅读的。
收藏 0 赞 0 分享

HTML5安全介绍之内容安全策略(CSP)简介

前言:HTML5出现后,网络安全更加受到广泛的关注。Web对于网络安全有哪些改进?我们如何来面对越来越危险的网络欺诈和攻击?下面的文章谈到了W3C对于这个问题的最新解决方案。未来有机会的话,我会针对XSS、P3P、同源策略、CORS(跨域资源共享)和CSP进行关于HTML5内容
收藏 0 赞 0 分享

input元素的url类型和email类型简介

在过去我们制作网页输入框,会用到不少JS验证,如今有了HTML5写这种效果已经没有那么麻烦了,下面我来给大家介绍两种HTML5的input的新增加的类型应用。
收藏 0 赞 0 分享
查看更多