js畫一棵樹

来源:http://www.cnblogs.com/mistwalker/archive/2017/09/04/7473478.html
-Advertisement-
Play Games

用純js畫一棵樹。思路: 1、一棵樹的圖片,作為頁面背景; 2、通過html5中的canvas畫布進行遮罩; 3、定時每隔10ms,從下往上清除1px的遮罩; 畫的過程如下: ...


  用純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>

 

  畫的過程如下:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在單體應用程式中,組件可通過語言級方法或者函數相互調用。相比之下,基於微服務的應用程式是一個運行在多台機器上的分散式系統。通常,每個服務實例是一個進程。因此,服務必須使用進程間通信(IPC)機制進行交互。稍後我們將瞭解到多種 IPC 技術,但在此之前,我們先來探討一下涉及到的各種設計問題。 ...
  • 用戶註冊 用戶姓名 : ... ...
  • 學習JavaScirpt30的筆記! 有意思! 2 > CSS clock 效果是這樣的.... 這是改良過後的 版本.... 話不多說,直接來看代碼。 首先是html部分 最外層的 clock 來作為底部的圓環。 變化都是在 clock-face 裡面的。 之後就是三個 div指針啦。 下麵是CS ...
  • ES6為Array增加了of函數用已一中明確的含義將一個或多個值轉換成數組。 因為,用new Array()構造數組的時候,是有二意性的。 構造時,傳一個參數,表示生成多大的數組。 構造時,傳多個參數,每個參數都是數組的一個元素。 結果: ES6增加的Array.of()方法,只有一個含義,of的參 ...
  • 概念 執行環境 執行環境定義了變數或函數有權訪問的其他函數,決定了他們各自的行為。每個執行環境都有一個與之關聯的變數對象。 變數對象 環境中定義的所有變數和函數都保存在這個對象中。 全局執行環境 全局執行環境是最外圍的一個執行環境。在web瀏覽器中,全局執行環境被認為是Window對象,因此所有全局 ...
  • webkit內核瀏覽器DIV滾動條樣式修改和設置 引言: 最近在做自己的小項目,為了設計出好看的頁面費勁了心思,大到頁面的整體佈局,小到DIV的滾動條都不放過,以下是我通過查閱資料總結的webkit內核瀏覽器滾動條樣式的修改方法。 原理: webkit瀏覽器css設置滾動條主要有下麵7個屬性 1. ...
  • 1. 什麼是JavaScript JavaScript是一門廣泛用於瀏覽器客戶端的腳本語言 由Netspace公司設計,當時跟Sun公司合作,所以名字起得像Java 業內一般簡稱JS 2. JS的常見用途 1》能進行HTML的DOM操作,也稱節點(標簽元素)操作。 比如添加、修改、刪除節點,JS可以 ...
  • 源碼 https://github.com/2016Messi/Gorgeous clock 效果展示 https://2016messi.github.io/Gorgeous clock/ 如果各位博友覺得效果不錯,歡迎star ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...