###前提・実現したいこと
jQueryで、toggleClassを使って要素の場所を変えたいと思っています。
position:fixed;の指定がされている要素に、position:static;の指定がされたクラスを付けて、位置を変えられるかと思ったのですが、うまくできません。
一瞬だけ変わるのですが、すぐに戻ってしまいます。
どのような原因が考えられるでしょうか。
よろしくお願いいたします。
###発生している問題・エラーメッセージ
クリックすると、一瞬だけposition:stitic;が付くのですが、次の瞬間には戻ってしまいます。
htmlの検証で該当するようなエラーは下記のみで、scriptタグの始まりのどこが違うのかもよく分かりません。(scriptは、bodyの閉じタグの直後に書かれています。)
Stray start tag script.
###該当のソースコード
<body> <nav class="navigation"> <ul class="Menu"> <li class="menuA"><a href="">A</a></li> <li class="menuB"><a href="">B</a></li> <li class="menuC"><a href="">C</a></li> <li class="menuD"><a href="">D</a></li> </ul> </nav> <script src="jquery-3.1.1.min.js"></script> <script> $('.Menu li').click(function(){ $('.menuA').toggleClass('plus'); $('.menuB').toggleClass('plus'); $('.menuC').toggleClass('plus'); $('.menuD').toggleClass('plus'); }); </script> </body>
body{ height: 100%; background-color: #fff; font-family: sans-serif; } .Menu li{ background-color:#ffcf60; float: left; width: 7rem; height: 3rem; margin: 1rem; border-radius: 1rem; text-align: center; } .Menu li a{ line-height: 3rem; text-decoration: none; color: #803c27; display: block; } .menuA { position: fixed; left: 25%; top: 25%; transition-property: all; transition-duration: 1s; } .menuB{ position: fixed; left: 45%; top: 45%; transition-property: all; transition-duration: 1s; } .menuC{ position: fixed; left: 60%; top: 10%; } .menuD{ position: fixed; left: 80%; top: 30%; } .plus{ position: static; }
###試したこと
toggleClass以外のメソッド(CSSなど)でも試しました。
同じように、jQueryの効果が一瞬だけついて、すぐに戻ってしまいます。
回答2件
あなたの回答
tips
プレビュー