前提・実現したいこと
ビジュアルで言うと、下記のイメージです。
①ロゴをクリック → 右回りに永遠に回転
②右回りしているロゴをクリック → 逆回りに回転して元の状態に戻る
③ ①に戻る
↑は、下記の処理をすると認識してます。
①.logoをクリックすると、.rotateが付与される(右回りに動く)
②.logo.rotateをクリックすると、.rotateが消え、.rotate-backが付与される。(逆回りで戻る)
③.logo.rotate-backをクリックすると、.rotate-backが消え、.rotateが付与される(右回りに動く)
発生している問題
①は出来るのですが、色々試しても②以降が出来ません。
お力添え頂きたいです。
(PCはホバーイベントで処理しており、実現できています。)
該当のソースコード
HTML
1<div class="logo-wrapper"> 2 <img class="logo" src="img/logo@2x.png" alt=""> 3</div>
jQuery
1$(function() { 2 /* pc ウィンドウサイズ769以上 */ 3 if (window.matchMedia('(min-width: 769px)').matches) { 4 $(".logo").hover( 5 function() { 6 $(".logo").addClass("rotate"); 7 }, 8 function() { 9 if ($(this).hasClass("rotate")) { 10 $(this).removeClass("rotate"); 11 $(this).addClass("rotate-back"); 12 13 } else { 14 $(this).removeClass("rotate-back"); 15 } 16 }); 17 } 18 // まだ実現できていないところ 19 else if (window.matchMedia('(max-width:768px)').matches) { 20 /* ウィンドウサイズ768以下の処理を記述 */ 21 $(".logo").click(function() { 22 if ($(this).length) { // クリックされた要素が.logoのみだった場合 23 $(this).addClass("rotate"); // .rotateを追加 24 } else if ($(this).hasClass("rotate")) {// クリックされた要素に.rotateがある場合 25 $(this).removeClass("rotate");// .rotate削除 26 $(this).addClass("rotate-back");//.rotate-backを追加 27 } else {//クリックされた要素に.rotate-backがある場合 28 $(this).removeClass("rotate-back");// .rotate-back削除 29 } 30 }); 31 } 32})
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。