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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

jQuery

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

Q&A

0回答

480閲覧

windowサイズの切り替わりでのクラス追加

yunnyunnku

総合スコア9

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

jQuery

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

0グッド

0クリップ

投稿2020/08/02 12:22

編集2020/08/02 12:32

初めて質問させていただきます。かなりの初心者ですので、
上手く質問事項等記載できていなかったらすいません。

現在レスポンシブ時のハンバーガーナビゲーションを制作していて、
下記の実装が上手くいかず悩んでます。
<問題>
レスポンシブでスマホ時とPC時にメニューバーをcssのクラスで表示非表示を切り替えているが、
スマホ時に表示するハンバーガーアイコンをクリックしたまま画面サイズをPC状態に変更すると
ハンバーガーメニュー部分が非表示に切り替わらないままとどまってしまう。(closeクラスが付与されず表示のままになってしなう)

<やりたいこと>
ハンバーガーアイコンをクリックしてメニューを表示状態のまま画面サイズを変更した際
「1014px」にwindowサイズが変更されたら強制的に非表示にするクラス(close)を追加したい。

html

<header class="SpNav"> <div class="SpNavIcon" id="SpNavIcon"> <span></span> <span></span> <span></span> </div> <nav class="SpNavMenu close"> <ul class="SpNavMenuInner"> <li><a href="#">About</a></li> <li><a href="#">Work</a></li> <li><a href="#">Contact</a></li> </ul> <div class="SpNavMenuBg"></div> </nav> </header>

試したこと

const SpNavIcon = document.getElementById('SpNavIcon');
const span = SpNavIcon.children;
const SpNavMenu = document.getElementsByClassName('SpNavMenu');

クリック時の切り替え用-----------------------------------------------
SpNavIcon.addEventListener('click',(el, i) => {
if(SpNavMenu[0].classList.toggle("close") === true){
SpNavMenu[0].classList.add("close");
on.reset();
SpNavMenuBg.reset();
Inner.reset();
}else{
SpNavMenu[0].classList.remove("close");
on.play();
SpNavMenuBg.play();
Inner.play();
};
});

画面変更時用(上手くいかない部分)-----------------------------------------------
(function(){
window.addEventListener( 'resize', () => {
let win = window.width;
let breakPoint = 1014;
if(win > breakPoint){
SpNavMenu[0].classList.add("close");
}
}, false );
});

<追記>
クリック時の切り替え用部分では、「anime.js」を使ってアニメーションを設定し、一緒に実行しています。
jqueryで下記の様に記載した際は上手く反応してくれるのですが、
javascriptで行った際上手く行きませんでした。

jqueryで上手くいった記載----------------------------------------------------
$(function(){
$(window).resize(function(){
var win = $(window).width();
var break = 1014;
if (win > break) {
$('.SpNavMenu').addClass('close');
}
})
});

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問