キャンバスをベースにした超クールな水光効果を実現

キャンバスをベースにした超クールな水光効果を実現

この記事の例では、キャンバスをベースにした超クールな水の光の効果を実装するための具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

<!DOCTYPE html>  
<html>  
<ヘッド>  
    <メタ文字セット="UTF-8">  
    <title>キャンバスをベースにした超クールな水の光の効果</title>  
    <スタイル>
        *{
            マージン: 0;
            パディング: 0;
        }
        キャンバス{
            境界線: 1px 実線の赤;
            幅: 100%;
            高さ: 100%;
        }
    </スタイル>
</head>  
<body onselectstart="falseを返す">  
        <!-- キャンバス タグを追加し、赤い枠線を追加して、ページ上で見やすくします -->  
        <キャンバスid="myCanvas">  
        お使いのブラウザはキャンバス タグをサポートしていません。   
        </キャンバス>
<スクリプト src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></スクリプト>
<script type="text/javascript">
    var キャンバス = document.getElementById("myCanvas");  
    var ctx = canvas.getContext("2d");    
    var cx1 = キャンバス.offsetLeft;
    var cy1 = キャンバス.offsetTop;
    var cx2 = canvas.offsetLeft + canvas.offsetWidth;
    var cy2 = canvas.offsetTop + canvas.offsetHeight;
    bbox を canvas.getBoundingClientRect() に追加します。  
    $(関数(){
        var direction = 'right'、x = y = right_count = down_count = left_count = up_count = 0;
        ctx.beginPath(); //新しい描画パスを開始します ctx.moveTo(x, y); //線の開始点の座標を(0,0)として定義します
        setInterval(関数(){
            ctx.strokeStyle = '#'+Math.floor(Math.random()*16777215).toString(16);
            スイッチ(方向){
                ケース 'right':
                    if(x >= 300 - 右カウント){
                        方向 = '下';    
                        右カウント++;
                    }それ以外{
                        ++;
                    }
                    壊す;
                ケース「ダウン」:
                    if(y >= 150 - ダウンカウント){
                        方向 = '左';
                        ダウンカウント++;
                    }それ以外{
                        y++;
                    }
                    壊す;
                ケース「左」:
                    if(x <= 左カウント){
                        方向 = '上';
                        左_count++;
                    }それ以外{
                        x--;
                    }
                    壊す;
                ケース「上」:
                    y <= up_count + 1の場合{
                        方向 = '右';
                        アップカウント++;
                    }それ以外{
                        y--;
                    }
                    壊す;
            }
            ctx.lineTo(x, y);
            ctx.lineCap = 'round';
            ctx.lineWidth = 1; //線分の幅を設定します ctx.stroke(); //座標点シーケンスのパスに沿って直線を描画します }, 1);
    }) 
</スクリプト>  
</本文>  
</html>

エフェクトのスクリーンショット:

走行灯は常に点灯しており、主にここを周回しています。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • キャンバスがサーチライト効果を実現

<<:  MySQL における識別子の大文字と小文字の区別の問題の詳細な分析

>>:  Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

推薦する

インターネット接続なしでLinux Centos7にアプリケーションをインストールする方法の詳細な説明

1. 前の章では、プログラムを yum リポジトリに直接インストールできることを学びましたが、そのた...

psdカット画像をdiv+css形式に変換する

PSD から div css へのウェブページ切り取り例ステップ 1: まず、すべてのタグの内側と外...

WeChatアプレットが左右連携を実現

この記事では、WeChatアプレットの左右連動を実現するための具体的なコードを参考までに紹介します。...

IDEA2021 tomcat10 サーブレットの新しいバージョンの落とし穴

私が学習していたときに使用していたバージョンは比較的新しいものであり、インターネット上のチュートリア...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

Windows で MySQL マスター スレーブ レプリケーションを構成する方法

MySQL マスター/スレーブ レプリケーションを使用すると、1 つのデータベース (マスター デー...

MySQL の異なるテーブル間でフィールドをコピーする

場合によっては、フィールドから別の新しいフィールドにデータの列全体をコピーする必要があります。これは...

DockerでVueプロジェクトをデプロイする方法を教えます

1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...

HTML の div、td、p およびその他のコンテナーでの強制改行と非改行の実装

1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...

マークアップ言語 - タイトル

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

HTML ページジャンプコード

次のコードを index.html などのデフォルトのホームページ ファイルとして保存し、ルート デ...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

ES6 における Object.assign() の使い方の詳細な説明

目次2. 目的2.1 オブジェクトにプロパティを追加する2.3 オブジェクトの複製2.4 複数のオブ...

IDEA が Docker を統合してリモート展開を実現するための手順

1. Dockerサーバーへのリモートアクセスを有効にするdocker が配置されているリモート サ...