質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

解決済

書き起こしたJSが動きません。どこに問題があるか知りたいです。

kyouyuushimasu
kyouyuushimasu

総合スコア1

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1回答

0リアクション

0クリップ

206閲覧

投稿2022/08/07 03:59

とある既存のJavascriptを実際に自分の手で打ってみたのですが、どこを見直しても動きません。
自分で解決できなかったので、どこに問題があるかをご教授いただけますと幸いです。

完成すると雪のアニメーションが見られるみたいです。

HTML

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>雪のアニメーション</title> </head> <body> <script src="ryan.js"></script> </body> </html>

JavaScript

var canvas = document.querySelector('.snow'), ctx = canvas.getContext('2d'), windowW = window.innerWidth, windowH = window.innerHeight, numFlakes = 200, flakes = []; function Flake(x,y){ var maxWeight = 5, maxSpeed = 3; this.x = x; this.y = y; this.r = randomBetween(0,1), this.a = randomBetween(0,Math.PI); this.aStep = 0.01; this.weight = randomBetween(2,maxWeight); this.alpha = (this.weight/maxWeight); this.speed = (this.weight/maxWeight) * maxSpeed; this.update = function(){ this.x += Math.cos(this.a)* this.r; this.a += this.aStep; this.y += this.speed; } } function init(){ var i = numFlakes, flake, x, y; while(i--){ x = randomBetween(0,windowW,true); y = randomBetween(0,windowH,true); flake = new Flake(x,y); flakes.push(flake); } scaleCanvas(); loop; } function scaleCanvas(){ canvas.width = windowW; canvas.height = windowH; } function loop(){ var i = flakes.length, z, dist, flakeA; flakeB; // clear canvas ctx.save(); ctx.setTransform(1,0,0,1,0,0); ctx.clearRect(0,0,windowW,windowH); ctx.restore(); //loop of hell while(i--){ flakeA = flakes[i]; flakeA.update(); ctx.beginPath(); ctx.arc(flakeA.x,flakeA.y,flakeA.weight,0,2*Math.PI,false); ctx.fillStyle = 'rgba(255,255,255)' + flakeA.alpha + ')'; ctx.fill(); if(flakeA.y >= windowH){ flakeA.y = -flakeA.weight; } } requestAnimationFrame(loop); } function randomBetween(min,max,round){ var num = Math.random() *(max - min + 1) + min; if(round){ return Math.floor(num); }else{ return num; } } function distanceBetween(vector1,vector2){ var dx = vector2.x - vector1.x, dy = vector2.y - vector1.y; return Math.sqrt(dx*dx + dy*dy); } init(); var canvas = document.querySelector('.snow'), ctx = canvas.getContext('2d'), windowW = window.innerWidth, windowH = window.innerHeight, numFlakes = 200, flakes = []; function Flake(x,y){ var maxWeight = 5, maxSpeed = 3; this.x = x; this.y = y; this.r = randomBetween(0,1), this.a = randomBetween(0,Math.PI); this.aStep = 0.01; this.weight = randomBetween(2,maxWeight); this.alpha = (this.weight/maxWeight); this.speed = (this.weight/maxWeight) * maxSpeed; this.update = function(){ this.x += Math.cos(this.a)* this.r; this.a += this.aStep; this.y += this.speed; } } function init(){ var i = numFlakes, flake, x, y; while(i--){ x = randomBetween(0,windowW,true); y = randomBetween(0,windowH,true); flake = new Flake(x,y); flakes.push(flake); } scaleCanvas(); loop(); } function scaleCanvas(){ canvas.width = windowW; canvas.height = windowH; } function loop(){ var i = flakes.length, z, dist, flakeA, flakeB; ctx.save(); ctx.setTransform(1,0,0,1,0,0); ctx.clearRect(0,0,windowW,windowH); ctx.restore(); while(i--){ flakeA = flakes[i]; flakeA.update(); ctx.beginPath(); ctx.arc(flakeA.x,flakeA.y,flakeA.weight,0,2*Math.PI,false); ctx.fillStyle = 'rgba(255,255,255)' + flakeA.alpha + ')'; ctx.fill(); if(flakeA.y >= windowH){ flakeA.y = -flakeA.weight; } } requestAnimationFrame(loop); } function randomBetween(min,max,round){ var num = Math.random() *(max - min + 1) + min; if(round){ return Math.floor(num); }else{ return num; } } function distanceBetween(vector1,vector2){ var dx = vector2.x - vector1.x, dy = vector2.y - vector1.y; return Math.sqrt(dx*dx + dy*dy); } init();

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。