JS を使用して HTML で回転するクリスマスツリーを実装する

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック>
<html>
    <ヘッド>
    <メタ文字セット="utf-8">
    <タイトル>
        ZXW-NUDTより
    </タイトル>
        <スタイル>
            本文{text-align:center}
            html、本文
            {
                幅: 100%;
                高さ: 100%;
                マージン: 0;
                パディング: 0;
                境界線: 0;
            }
            
            分割
            {
                マージン: 0;
                パディング: 0;
                境界線: 0;
            }

            .nav
            {
                位置: 絶対;
                上: 0;
                左: 0;
                幅: 100%;
                高さ: 27px;
                背景色: 白;
                色: 黒;
                テキスト配置: 中央;
                行の高さ: 25px;
            }

            1つの
            {
                色: 黒;
                テキスト装飾: なし;
                border-bottom: 1px 破線の黒;
            }

            ホバー
            {
                border-bottom: 1px 赤一色;
            }

            。前の
            {
                フロート: 左;
                左マージン: 10px;
            }

            。次
            {
                フロート: 右;
                右マージン: 10px;
            }

            。緑
            {
                色: 緑;
            }

            。赤
            {
                色: 赤;
            }

            テキストエリア
            {
                幅: 100%;
                高さ: 100%;
                境界線: 0;                
                パディング: 0;                
                マージン: 0;                
                パディング下部: 20px;              
            }

            .ブロック外枠            
            {                
                フロート: 左;                
                幅: 22%;                
                高さ: 100%;                
                パディング: 5px;                
                border-left: 1px 黒一色;                
                マージン: 30px 3px 3px 3px;                
            }

            .ブロックインナー            
            {                
                高さ: 68%;                
            }

            。1つ
            {                
                境界線: 0;                
            }
        </スタイル>
    </head>
<本文マージン幅="0" マージン高さ="0">
    <キャンバスid="c" 高さ="356" 幅="446">
    <スクリプト>
        var 折りたたまれた = true;
        関数トグル()
        {
            var fs = top.document.getElementsByTagName('フレームセット')[0];
            var f = fs.getElementsByTagName('frame');
            (折りたたまれた)
            {
                fs.rows = '250px,*';
                fs.noResize = false;
                f[0].noResize = false;
                f[1].noResize = false;
            }

            それ以外
            {
                fs.rows = '30px,*';
                fs.noResize = true;
                f[0].noResize = true;
                f[1].noResize = true;
            }
            折りたたまれました = !折りたたまれました;
        }
    </スクリプト>

    <スクリプト>
        var b = document.body;
        タグ名で要素を取得する
        var a = c.getContext('2d');
        ドキュメントのbodyの幅;
    </スクリプト>

    <スクリプト>
        M=数学;
        Q=M.ランダム;J=[];
        16;
        T = M.sin;
        E=M.sqrt;
        (O=k=0;x=z=j=i=k<200;) の場合
        (M[k]=k?c.cloneNode(0):c) の場合
        {    
            幅=高さ=k?32:W=446;
            (getContext('2d') を使用)
            もし(k>10|!k)

            のために(
            フォント='60px インパクト',
            V='rgba(';I=i*U,fillStyle=k?k==13?V+'205,205,215,.15)':
            V+(147+I)+','+(k%2?128+I:0)+','+I+',.5)':'#cca',i<7;)

            beginPath(fill(arc(Ui/3,24-i/2,k==13?4-(i++)/2:8-i++,0,M.PI*2,1)));

            それ以外の場合(;
            x=T(i)、        
            y=Q()*2-1、        
            D=x*x+y*y、        
            B=E(Dx/.9-1.5*y+1)、        
            R=67*(B+1)*(L=k/9+.8)>>1、        
            i++<W;        
            )

            もし(D<1)    
            beginPath(strokeStyle=V+R+','+(R+B*L>>0)+',40,.1)'),        
            移動先(U+x*8,U+y*8)        
            ライントゥ(U+x*U,U+y*U)、        
            脳卒中();

            のために(        
            y=H=k+E(k++)*25、        
            R = Q() * W;        
            P=3,j<H;)    
            J[O++]=[
                x+=T(R)*P+Q()*6-3、y+=Q()*U-8、
                z+=T(R-11)*P+Q()*6-3、
                j/H*20+((j+=U)>H&Q()>.8?Q(P=9)*4:0)>>1]
        }

        setInterval(関数G(m,l)
        {    
            A=T(D-11) です。    
            もし(l)

            戻る(        
            m[2]-l[2])*A+(l[0]-m[0])*T(D);        
            a.clearRect(0,0,W,W);        
            J.ソート(G);

            のために(
            私=0;
            L=J[i++];
            a.drawImage(M[L[3]+1],207+L[0]*A+L[2]*T(D)>>0,L[1]>>1))    
            {
                もし(i==2e3)
                a.テキストを埋め込む
                (「ハッピークリスマス!」、U、345);

                もし(!(i%7))        
                a.drawImage(M[13],
                ((157*(i*i)+T(D*5+i*i)*5)%W)>>0、
                ((113*i+(D*i)/60)%(290+i/99))>>0);
            }    
            D+=.02
        },1)
    </スクリプト>
</本文>
</html>

バックグラウンド ミュージックの追加については、この HTML ファイルに music という名前のフォルダーがあり、そのフォルダー内に music.mp3 というオーディオ ファイルがあると仮定します。コードは次のようになります。

<audio src="music/music.mp3" autoplay="自動再生" loop="ループ"></audio>
  • srcはアドレスです
  • 自動再生のデフォルト再生
  • loopデフォルトループ

背景を変更するには、次のようにします (まだ試していません):

<div class="image"><img src="images.jpg" alt="" /></div><div class="content">

これで、JS を使用して HTML で回転するクリスマス ツリーを実装する方法についての記事は終わりです。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript によるダイナミッククリスマスツリーの詳細な説明
  • JS2Image をベースにしたクリスマスツリーのコードを実装する
  • JavaScript フラッシュクリスマスツリー実装コード

<<:  HTML 基本要約推奨事項 (タイトル)

>>:  CSSは解析プロセスでさまざまな読み込み効果を実装します

推薦する

CSS3 で King of Glory マッチング人員読み込みページを実装する方法

King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...

Linux システムでの gcc コマンドの使用法の詳細な説明

目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...

HTML で中国語を UTF-8 に変換する方法

HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...

And キーワードを使用した MySQL の複数条件クエリ ステートメント

AND キーワードを使用した MySQL 複数条件クエリ。MySQL では、AND キーワードを使用...

MySQL 5.7.21 のインストールとパスワード設定のチュートリアル

MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...

CSS スティッキーフッター実装コード

この記事では、CSS スティッキー フッターの実装コードを紹介し、共有します。詳細は次のとおりです。...

表内のコンテンツオーバーフローのレイアウト方法について

コンテンツオーバーフローとは何ですか?実際、テキストが大量にある場合、コンテンツ領域がそれだけの長さ...

Vueで配列の変更を監視する方法

目次序文ソースコード学習の第一歩はどこから始めればよいでしょうか?写真から始めましょうソースコードを...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

JavaScript は自由に移動するウィンドウのマウス制御を実装します

この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考...

JavaScript の組み込みオブジェクト 数学と文字列の詳細な説明

目次数学オブジェクト共通プロパティ一般的な方法Math.random()文字列メソッド長さプロパティ...

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

入力ボックスのコンテンツプロンプトと非表示機能を実装する JavaScript

入力ボックスが小さい場合、内容を入力した後に、入力内容が拡大されたプロンプト ボックスを表示したいこ...

Vue がコンポーネント通信を実装する 8 つの例

目次1. Props 親コンポーネント ---> 子コンポーネント通信2. $emit 子コン...

MySQL 5.7.18 のダウンロードとインストールの詳細な手順

MySql ダウンロード1. 公式サイトを開き、ダウンロード パスを見つけます。ダウンロード アドレ...