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は解析プロセスでさまざまな読み込み効果を実装します

推薦する

ウェブページ内でウェブテーブルやdivレイヤーが引き伸ばされる問題の解決策

<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...

WeChatアプレットがログインインターフェースを実装

WeChatアプレットのログインインターフェースは参考までに実装されています。具体的な内容は次のとお...

MySQL 8.0.12 解凍版インストールチュートリアル個人テスト!

Mysql8.0.12 解凍版のインストール方法をテストしましたので、ご参考までに1. ダウンロー...

jQueryは何に使われるのですか?jQueryは実際にはjsフレームワークです

jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...

MySQLグループクエリ最適化方法

MySQL はほとんどの場合、GROUP BY クエリと DISTINCT クエリを同様に処理します...

HTML チュートリアル: 定義リスト

<br />原文: http://andymao.com/andy/post/104.h...

XHTML 特殊文字コレクション

注意&#160;ノーブレークスペース = ノーブレークスペース、 iexcl ¡ &...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

Docker コンテナのネットワーク障害に対する 6 つの解決策

Docker コンテナのネットワーク障害に対する 6 つの解決策注: 以下の方法は、コンテナ内のパブ...

ウェブページのフォント設定についての簡単な説明

サイト全体のフォントを設定することは、常にシンプルでありながら難しい作業です。深く掘り下げていくと、...

HTMLでのラジオ値の取得、割り当て、登録の詳細な説明

1. ラジオのグループ化名前が同じであれば、それらはグループであり、つまり、次のようにグループ内で選...

MySQL データベースで UTF-8 エンコードを設定する方法

/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...

フレックスレイアウトにおけるflex-growとflex-shrinkの計算方法の詳しい説明

CSS のFlex(彈性布局)すると、Web ページのレイアウトを柔軟に制御できます。Flex Fl...

SQL 実践演習: オンライン モール データベース ユーザー情報データ操作

オンラインショッピングモールデータベース - ユーザー情報データ運用プロジェクトの説明電子商取引の台...

史上最も簡単な MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 37)

データのバックアップと復元パート3の詳細は次のとおりです基本的な概念:バックアップ、現在のデータまた...