基于JS2Image实现圣诞树代码


Posted in Javascript onDecember 24, 2015

马上圣诞节了,作为一名程序猿,如何体现自己独特的过节风格,如何在朋友圈发一张专属自己的祝福照片我觉得很有必要,你们说是不是。

谈到圣诞节,话说程序猿和圣诞之间的关系还有这么一个笑话:

Q:程序员为什么总是将万圣节和圣诞节弄混?

A:因为oct 31==Dec 25!

停停停...

先不笑,咱们先冷静下...

面对圣诞节还得加班加点的苦逼程序猿们,我们来缓解下自己沉闷的心情,发挥下自己独特的艺术细胞,是时候装一下逼了...

那就让我们用手头的IDE工具来展示一颗圣诞树吧,没有圣诞老人,没有圣诞礼物,咱们有圣诞树。

瞧,出来了,不是一棵,是一坨。

↓↓↓↓↓↓↓↓↓↓

 基于JS2Image实现圣诞树代码

所有的js代码都堆成树了....

关键是还是自动生成的!

这咋搞?咋搞?

下面就和大家一起分享:

首先这并非小编原创,之前便有牛逼的大神创造了这一款工具,它叫js2image。

js2image 是一个可以把js源代码压缩成一个ascii字符画的源代码的工具,它的特色是压缩后的代码仍可运行,而不是简单的拼成最终的图案哦。

安装了node和npm的童鞋可以直接使用以下命令安装js2image:

基于JS2Image实现圣诞树代码

安装完毕后执行命令:

基于JS2Image实现圣诞树代码

其中的路径./resource/jquery.js为你所要压缩js的文件路径

执行完命令后会生成一个xmas.js结尾的文件,打开来可以看到一棵棵圣诞树咯。

其他安装方法可详见:

github地址:https://github.com/xinyu198736/js2image

在线转换地址:http://f2e.souche.com/cheniu/js2image.html

据说压缩完了99%的代码都可以正常运行哦。

哈哈哈,有兴趣的童鞋可以尝试下,

今年圣诞咱们就和圣诞树(还是代码)过吧~

PS:js的 new image()

创建一个Image对象:var a=new Image();    定义Image对象的src: a.src=”xxx.gif”;    这样做就相当于给浏览器缓存了一张图片。

图像对象:

建立图像对象:图像对象名称=new Image([宽度],[高度])

图像对象的属性: border complete height hspace lowsrc name src vspace width

图像对象的事件:onabort onerror onkeydown onkeypress onkeyup onload

需要注意的是:src 属性一定要写到 onload 的后面,否则程序在 IE 中会出错。

参考代码:

var img=new Image(); 
  img.onload=function(){alert("img is loaded")}; 
  img.onerror=function(){alert("error!")}; 
  img.src="http://www.abaonet.com/img.gif"; 
  function show(){alert("body is loaded");}; 
  window.onload=show;

      运行上面的代码后,在不同的浏览器中进行测试,发现 IE 和 FF 是有区别的,在 FF 中,img 对象的加载包含在 body

的加载过程中,既是 img加载完之后,body 才算是加载完毕,触发 window.onload 事件。

      在 IE 中,img 对象的加载是不包含在 body 的加载过程之中的,body 加载完毕,window.onload 事件触发时,img

对象可能还未加载结束,img.onload事件会在 window.onload 之后触发。

      根据上面的问题,考虑到浏览器的兼容性和网页的加载时间,尽量不要在 Image 对象里放置过多的图片,否则在 FF 下

会影响网页的下载速度。当然如果你在 window.onload 之后,执行预加载函数,就不会有 FF 中的问题了。

      可以通过Image对象的complete 属性来检测图像是否加载完成(每个Image对象都有一个complete属性,当图像处于

装载过程中时,该属性值false,当发生了onload、onerror、onabort中任何一个事件后,则表示图像装载过程结束(不管成

没成功),此时complete属性为true)

var img = new Image();  
img.src = oImg[0].src = this.src.replace(/small/,"big");  
oDiv.style.display = "block";  
img.complete ? oDiv.style.display = "none" : (oImg[0].onload = function() {oDiv.style.display = "none"})

注:

ie 火狐等大众浏览器均支持 Image对象的onload事件。

ie8及以下、opera 不支持onerror事件

Javascript 相关文章推荐
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
laypage分页控件使用实例详解
May 19 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
js实现年月日表单三级联动
Apr 17 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
js时间转换毫秒的实例代码
Aug 21 Javascript
Javascript实现鼠标点击冒泡特效
Dec 24 Javascript
jquery读写cookie操作实例分析
Dec 24 #Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 #Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 #Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 #Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 #Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 #Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
Dec 24 #Javascript
You might like
php中stream(流)的用法
2014/03/25 PHP
php 实现进制相互转换
2016/04/07 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
js string 转 int 注意的问题小结
2013/08/15 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python实现自动解数独小程序
2019/01/21 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
24岁生日感言
2014/01/13 职场文书
单位介绍信范文
2014/01/18 职场文书
营销总经理岗位职责
2014/02/02 职场文书
教师节商场活动方案
2014/02/13 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
服务承诺书怎么写
2014/05/24 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python