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

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

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

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

Q&A

解決済

1回答

499閲覧

クリックすると要素が回転する機能を実装したい

startWorking

総合スコア4

JavaScript

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

0グッド

1クリップ

投稿2023/03/09 06:40

実現したいこと

クリックすると要素が回転する機能を実装したいです。

ここに実現したいことを箇条書きで書いてください。

・要素をクリック
・回転
・要素をクリック(2回目)
・回転

以降繰り返し

前提

html/css JavaScriptでクリックをすると回転する要素を作りました。
初回のクリックで回転することは確認できました。
2回目以降のクリックで回転しないことを確認しました。
2回目以降のクリックでも回転するように実装を行いたいです。

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

2回目以降のクリックで回転しない。

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>roll</title> 9</head> 10 11<body> 12 13 <div></div> 14 15 <style> 16 div { 17 width: 30px; 18 height: 10px; 19 border-radius: 10px; 20 background: #000; 21 } 22 23 .roll { 24 transform: rotate(360deg); 25 transition: all 1s; 26 } 27 </style> 28 <script> 29 const bar = document.querySelector('div') 30 console.log(bar) 31 bar.addEventListener('click', () => { 32 bar.classList.remove('roll') 33 bar.classList.add('roll') 34 }) 35 </script> 36</body> 37 38</html>

試したこと

bar.classList.toggelとすることで、クリックの奇数回は回転することを確認しました。
削除を行ってから付与したらいいのかと思い、今に至ります。

以上になります。
ご教授いただけますと幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

javascript

1<style> 2 div { 3 width: 30px; 4 height: 10px; 5 border-radius: 10px; 6 background: #000; 7 } 8 .roll { 9 transform: rotate(360deg); 10 transition: all 1s; 11 } 12</style> 13<script> 14window.addEventListener('DOMContentLoaded', ()=>{ 15 const bar = document.querySelector('div'); 16 bar.addEventListener('click', () => { 17 bar.classList.add('roll') 18 }); 19 bar.addEventListener('transitionend', () => { 20 bar.classList.remove('roll') 21 }) 22}); 23</script> 24<div></div>

投稿2023/03/09 06:51

yambejp

総合スコア114769

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

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

startWorking

2023/03/09 06:53

ご回答いただきありがとうございます! 実装することが出来ました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問