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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

299閲覧

クリックによってcssプロパティの追加と削除をしたい

Yui_note

総合スコア15

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/08/27 09:02

編集2019/08/27 09:39

前提・実現したいこと

jsで、クリックに応じてHTMLにCSSプロパティの追加と削除を行いたいのですが、
クリックで追加はできたのですが、プロパティの削除ができません。

該当のソースコード

jQuery

1$(function(){ 2 var touch = false; 3 var scrollpos; 4 5 $('#hamburger').on('click',function(e){ 6 scrollpos = $(window).scrollTop(); 7 $('body').css({'margin-top': -scrollpos,'position': 'fixed'}); 8 }) 9});

https://www.prored-p.com/
こちらのサイトのハンバーガーメニューの部分の様に、
クリックに応じてbodyにCSSプロパティを追加・削除するには
どの様にしたらよろしいのでしょうか。

何か解決方法をご存知の方がいらっしゃいましたら、
お力をお貸しいただきたいです。

どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

クリック時にカスタムデータかなにかにフラグをたてておいて
フラグのありなしで削除と追加をいれかえるとかですかね

sample

たとえばこんな感じ

javascript

1<style> 2body{margin:0px;padding:0px} 3#hamburger{position:fixed;z-index:1;height:1.5em;background-Color:gray;width:100%;} 4#content{height:999px;margin-top:1.5em;position:absolute;}; 5</style> 6 7<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 8<script> 9$(function(){ 10 $('#hamburger').on('click',function(e){ 11 var flg=$(this).data('flg')||false; 12 $(this).data('flg',!flg); 13 scrollpos = $(window).scrollTop(); 14 if(flg){ 15 $('#content').css({'margin-top': '','position': ''}); 16 }else{ 17 $('#content').css({'margin-top': -scrollpos,'position': 'fixed'}); 18 } 19 }) 20}); 21</script> 22<div id="hamburger">hamburger</div> 23<div id="content"> 241<br><br><br><br><br> 252<br><br><br><br><br> 263<br><br><br><br><br> 274<br><br><br><br><br> 285<br><br><br><br><br> 296<br><br><br><br><br> 307<br><br><br><br><br> 318<br><br><br><br><br> 329<br><br><br><br><br> 3310<br><br><br><br><br> 34</div>

投稿2019/08/27 09:28

編集2019/08/27 10:55
yambejp

総合スコア114784

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

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

Yui_note

2019/08/27 09:44

ありがとうございます。 > カスタムデータかなにかにフラグをたてておいて フラグのありなしで削除と追加をいれかえる すみません、フラグをたてるというのは どうゆうことでしょうか。。 初心者マークをつけるのを忘れてしまいました、、申し訳ありません。 よろしければ教えていただきたいです。 よろしくお願いいたします。
yambejp

2019/08/27 10:58

フラグを利用したサンプルつけました 挙動は想定されているものと違うような気がします
Yui_note

2019/08/27 12:22 編集

サンプルまで作っていただき、すみません、、 ありがとうございます。 いただいたコードで無事に意図していた動きができました。 flgの部分の処理が必要だったんですね。。 まだflgで何の処理をしているのかわからないので、 もう少し勉強いたします。 本当に助かりました。 ありがとうございました。
Yui_note

2019/08/27 12:25

すみません、 > 挙動は想定されているものと違うような気がします 確かに、本当に実装したい動きは実装できませんでした。 ただCSSサイドでも解決できるかもしれない感じもありましたので、 もう少しここから色々試してみたいと思います。 すみません、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問