JS を使用した簡単な雪効果の例の詳細な説明

JS を使用した簡単な雪効果の例の詳細な説明

序文

南の友達の多くは、雪をほとんど見たことがない、あるいは見たことがないかもしれません。今日は、雪景色をシミュレートする小さなデモを紹介します。まず、ランニングエフェクトを見てみましょう。

クリックするとオンラインで実行されているのを見ることができます http://haiyong.site/xiaxue

まず、プロジェクト構造、スノーフレーク画像、.htmlファイル、jquery-1.4.2.jsを見てみましょう。

使用した雪の結晶の画像をここに掲載しましたが、私のウェブサイトにアップロードした画像アドレスを直接使用することもできます:http://haiyong.site/wp-content/uploads/2021/12/snow.png。画像から始めて、コンテンツは完全に JS に依存します。

主な実装コード

HTMLコード

ここにHTMLのコンテンツがあります。

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<title>海が抱擁する🌊 | 雪が一粒ずつ降る</title>
		<meta name="viewport" content="width=デバイス幅、ユーザースケーラブル=いいえ">
		<meta name="keywords" content="雪の結晶" />
		<meta name="description" content="ツール | 雪を一つずつ。100 個の小さなゲームを備えた Web サイトを作成することを決意。Haiyong によって作成、テクニカル サポート - Haiyong" /> 
		<meta name="author" content="海拥(http://haiyong.site/moyu)" />
		<meta name="copyright" content="海拥(http://haiyong.site/moyu)" />
		<link rel="icon" href="http://haiyong.site/wp-content/uploads/2021/07/cropped-59255587-1-192x192.jpg" rel="external nofollow" sizes="192x192" />
		<スタイル タイプ="text/css">
			体{
				背景色: #000000;
				margin: 0;/* 組み込みのマージンを削除します*/
			}
			画像{
				位置: 絶対;
			}
		</スタイル>
	</head>
	<本文>
		<script src="js/jquery-1.4.2.js" type="text/javascript" charset="utf-8"></script>		
	</本文>
</html>

JSコード

まず、タイマーをオンにして、雪の結晶の画像を追加します。ここで、<img src='images/snow.png'>を<img src='http://haiyong.site/wp-content/uploads/2021/12/snow.png'>に変更できます。

setInterval(関数(){
var img = $("<img src='images/snow.png'>");
$("body").append(画像);

ここでは、雪片のサイズは10〜20pxに設定されています。次の式は、(0〜10 + 10)pxを表します。

var size = parseInt(Math.random()*11)+10;
img.css("幅",サイズ+"px");

画面の幅を取得する

var w = $(window).width();

値の範囲は0-画面幅-スノーフレーク幅です

var left =parseInt(Math.random()*(w-size));

得られたランダムな1eftを画像に与えます

img.css("左",左+"px");

雪片の動きのアニメーションを追加し、雪片の移動距離 = 画面の高さ - 雪片のサイズを取得します。

var top = $(window).height()-size;

以下のコメントのコードはキャッシュをクリアするために使用され、追加してもしなくてもかまいません。

img.animate({"top":top+"px"},size*100)
/* .fadeOut(1000,function(){
	//アニメーションが完了したらこのコードを実行してキャッシュをクリアします img.remove();
	//console.log($("img").length);
}); */
},10)

これをコメント解除すると、以下に示すように、降り積もる雪が消えます。

雪の積もりを見たい場合はコメントアウトすると、プレビュー効果は次のようになります。

この時点で、私たちが達成したい効果は完成しています。実行時間が長すぎると、メモリ使用量が過剰になり、遅延が発生する可能性があります。HTMLコードの最後のコメントの内容をコメント解除すると、下の雪が徐々に消えて消えていきます。ただし、雪もとても美しいと思うので、このように溶けないようにしました。

JS で実装されたシンプルな雪のエフェクトの例の詳細な説明に関するこの記事はこれで終わりです。より関連性の高い JS シンプルな雪のエフェクトのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript で雪の効果を実装するサンプルコード
  • js 特殊効果、ページ上の雪の小さな例
  • JavaScript でよく使われる 3 つの Web エフェクトの詳細な説明
  • 画像マーキー効果を実現するネイティブJS
  • ブラインドの特殊効果を実現するネイティブJS
  • 本をめくる効果を実現するネイティブJS

<<:  CSS3+HTML5+JSでブロックの縮小・拡大アニメーション効果を実現

>>:  フロントエンド開発者のための HTML 入門

推薦する

Oracle VM VirtualBox の CentOS7 オペレーティング システムのインストール チュートリアル図

目次インストール手順環境設定実行構成インストール手順ダウンロードアドレス: バージョン6.0 最初に...

単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...

Linux ソースコードの解析 epoll

目次1. はじめに2. シンプルなepollの例2.1、epoll_create 2.2、構造体イベ...

CSS3でハートを描く

成果を達成する要件/機能: CSS + HTML を使用してハートを描く方法。分析:正方形と 2 つ...

MySQLへの外部ネットワークアクセスを許可し、MySQLアカウントのパスワードを変更する方法

mysqlのrootアカウント、普段はlocalhostか127.0.0.1で接続しています。会社の...

dockerでnginxを実行するときにdaemon offが使用される理由についての簡単な説明

とても嬉しいです。この問題に遭遇したとき、私はDockerコンテナのプロセス原理について話さなければ...

Google Chromeの自動入力問題に対する完璧な解決策

Google Chrome では、ログインに成功すると、パスワードを記憶するかどうかを尋ねるメッセー...

パスワードログインなしでCentOS7にxshellリモートログインするアイデアを詳しく解説

まず、全体的な考え方についてお話しします。 1. パスワードを使用してCentOSシステムにログイン...

JavaScript で判決文をエレガントに記述する例

目次序文1. モナドの判断1.1 例1.2 オブジェクトに入れる1.3 マップに載せる2. 複数の判...

MySQL 5.7 zip版(zip版)のインストールと設定手順の詳細

はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...

MySQL における datetime と timestamp の違いと選択

目次1 違い1.1 スペース占有1.2 表現範囲1.3 タイムゾーン2 テスト3つの選択肢MySQL...

検証コード干渉を実装する js (静的)

この記事では、検証コード干渉を実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...

MySQLユーザー削除バグを解決する

著者が MySQL を使用してユーザーを追加していたところ、ユーザー名が間違って記述されていることに...

MySQLデータの同時更新を処理する方法

UPDATE はロックしますか?以下のような場合、SQL文はロックされますか? テーブル1を更新しま...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...