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

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

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

<!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 の詳細な説明

推薦する

JavaScript 遅延読み込みの詳細な説明

目次遅延読み込みCSS スタイル: HTML部分:スクリプト部分:要約する遅延読み込み名前の通り、私...

HTMLポップアップ透明レイヤーインスタンスのサイズを設定でき、比例することができます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

HTML テーブル マークアップ チュートリアル (22): 行の境界線の色属性 BORDERCOLORLIGHT

行内では、明るい境界線の色を個別に定義できます。基本的な構文<TR ボーダーカラーライト=co...

主要ブラウザとそのカーネルの紹介

トライデント コア: IE、MaxThon、TT、The World、360、Sogou Brows...

HTML の左右レイアウトのサンプルコード

CS: ...コードをコピーコードは次のとおりです。 html,body{ margin:0px; ...

NodeJS は画像テキスト分割を実現します

この記事では、画像テキストセグメンテーションを実装するためのNodeJSの具体的なコードを参考までに...

ウェブサイト構築経験概要

<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...

Dockerコンテナシェルスクリプトの実行ステータスを監視する方法

シナリオ会社のプロジェクトはDockerでデプロイされています。原因不明ですが、コンテナが時々停止し...

MySQLは既存のコンテンツを保持し、後でコンテンツを追加します

このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

シンプルなログインページを実装するための HTML+jQuery

目次導入公開コード(バックエンドインターフェース)例 1: 最もシンプル (純粋な HTML)コード...

Vue が価格カレンダー効果を実現

この記事では、価格カレンダー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

目次MySQLクラッシュ回復プロセス1. ブラックボックス下のデータフローを更新する2. やり直しロ...