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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Q&A

解決済

1回答

614閲覧

クリックすると文字が飛び跳ねるモーションを実装したい

YugoTokonami

総合スコア21

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

0グッド

0クリップ

投稿2021/09/02 09:37

編集2021/09/02 09:50

前提・実現したいこと

JavaScript初心者です。
ユーザー名をクリックすると、文字が飛び跳ねる機能を実装したいと思っています。色々調べて、自分なりに記述をしてみたのですが、機能が実装できません。
↓こんなふうにしたいです。
https://gyazo.com/23c7d040aa1500030a51be4779bb20b5

発生している問題・エラーメッセージ

最初はこの二つがエラーとして、出力していました。

GET https://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css net::ERR_ABORTED 404
index.js:4 Uncaught TypeError: Cannot read property 'addEventListener' of null

しかし、↓を記述する(index.jsに)ことで、二つ目のエラーは表示されなくなりましたが、機能は実装できていません。

if (!name){ return false;}

application.js

require("@rails/ujs").start() // require("turbolinks").start() require("@rails/activestorage").start() require("channels") require("../index");

index.js

window.addEventListener('load', () => { const name = document.getElementById("name"); if (!name){ return false;} name.addEventListener("mousedown", () => { name.classList.add("jump");}); name.addEventListener("animationend", () => { name.classList.remove("jump");}); name.addEventListener("animationcancel", () => { name.classList.remove("jump");}) });

index.html.erb

<div class="title"> <ul class="top-botton"> <% if user_signed_in? %> <li><%= link_to current_user.name, user_path(current_user.id), class:"user-name", id: "name" %></li>←ここでIDを取得している <li><%= link_to 'New Article', new_article_path, class:"new-article" %></li> <% else %> <li><%= link_to 'Log in', new_user_session_path, class: "login" %></li> <li><%= link_to 'Sign up', new_user_registration_path, class: "sign-up" %> <% end %> </ul> <div class="box"> <div class='wave -one'></div> <div class='wave -two'></div> <div class='wave -three'></div> <div class="title-content">B-blog</div> </div> </div> 以下省略

試したこと

Uncaught TypeError: Cannot read property 'addEventListener' of null

はnullに対して、addEventListenerを実行していたので、おかしなことになっていた。なので、if文を記述することで、nameがnullの場合、それ以降のコードを読み込まないようにすることで、解決した?のかと思います。しかし、結局機能の実装はできていないので、原因がわかりません。

JavaScriptは本当にわかりません。どなたか教えていただけると幸いです。

追加のエラー

↓Networkタブで404のステータスエラーが出ていました!
https://gyazo.com/c62d154ea33cc3359e03ebb9e0ee6c14

予想ですが、
application.html.erbの記述がおかしい?と思います。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決できました!
ありがとうございます!

投稿2021/09/03 07:13

YugoTokonami

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問