纯js实现画一棵树的示例


Posted in Javascript onSeptember 05, 2017

用纯js画一棵树。思路:

1、一棵树的图片,作为页面背景;

2、通过html5中的canvas画布进行遮罩;

3、定时每隔10ms,从下往上清除1px的遮罩;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My JS tree</title>
<style>
body {
  width: 1000px;
  height: 570px;
  background-image: url(image/tree.png);
  background-size: 1000px, 570px;
  background-repeat: no-repeat;
  margin-top: 0px;
  margin-bottom: 0px;
}
</style>
</head>

<body>
  <canvas id="mycanvas" width="1000px" height="570px"></canvas>

  <script>
    var c = document.getElementById("mycanvas");
    var ctx = c.getContext("2d");

    ctx.fillStyle = "#ffffff";
    ctx.fillRect(0, 0, c.width, c.height);//矩形遮住背景图像

    var y = c.height;

    window.setInterval(function() {
      if (y > 2) {
        ctx.clearRect(0, y - 1, c.width, y);
        y = y - 1;
      } else {
        window.clearInterval(this);//清除定时
        ctx.clearRect(0, 0, c.width, c.height);
      }
    }, 10);//每隔10ms清除1px的遮照
  </script>
</body>
</html>

画的过程如下:

纯js实现画一棵树的示例

以上这篇纯js实现画一棵树的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
禁用Enter键表单自动提交实现代码
May 22 Javascript
JavaScript时间操作之年月日星期级联操作
Jan 15 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
javascript cookie基础应用之记录用户名的方法
Sep 20 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
Jul 14 Javascript
React Native仿美团下拉菜单的实例代码
Aug 08 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
Jan 08 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
vue实现购物车选择功能
Jan 10 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
Sep 05 #Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 #Javascript
对于Javascript 执行上下文的全面了解
Sep 05 #Javascript
JS一个简单的注册页面实例
Sep 05 #Javascript
基于react组件之间的参数传递(详解)
Sep 05 #Javascript
zTree获取当前节点的下一级子节点数实例
Sep 05 #Javascript
JavaScript基础进阶之数组方法总结(推荐)
Sep 04 #Javascript
You might like
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
PHP读取Excel类文件
2017/05/15 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
关闭时刷新父窗口两种方法
2014/05/07 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python读写配置文件的方法
2015/06/03 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
cf收人广告词
2014/03/14 职场文书
股东合作协议书
2014/04/14 职场文书
体育馆的标语
2014/06/24 职场文书
怎样写辞职信
2015/02/27 职场文书
暂住证明怎么写
2015/06/19 职场文书
一篇文章弄懂MySQL查询语句的执行过程
2021/05/07 MySQL
python源码剖析之PyObject详解
2021/05/18 Python
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
Golang解析JSON对象
2022/04/30 Golang
MySQL深分页问题解决思路
2022/12/24 MySQL