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

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

新規登録して質問してみよう
ただいま回答率
85.46%
スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1015閲覧

lightboxの実装とスクロール時にヘッダーがハンバーガーメニューに変わるようにしたい

ken10

総合スコア5

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/09/21 07:47

HTML

1head内 2 <!-- CSS --> 3 <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css"> 4 <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+JP&display=swap" rel="stylesheet"> 5 <link rel="stylesheet" href="./slick/slick-theme.css"> 6 <link rel="stylesheet" href="./slick/slick.css"> 7 <link rel="stylesheet" href="./slick/lightbox.min.css"> 8 <link rel="stylesheet" href="portfolio.css"> 9  10body内該当タグ 11 <header id="header"> 12   <div class="logo-size"> 13 <img src="images/logo-cafe_3.png"> 14 </div> 15 <nav id="g-navi"> 16  <ul> 17  <li><a href="#area-1">About</a></li> 18 <li><a href="#area-2">Menu</a></li> 19 <li><a href="#area-3">Access</a></li> 20 </ul> 21 </nav> 22 </header> 23 24<h2 class="common-title">Menu</h2> 25 <ul class="gallery"> 26  <li><a href="images/cafe-img_1.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_1.jpg""></a></li> 27 <li><a href="images/cafe-img_2.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_2.jpg""></a></li> 28 <li><a href="images/cafe-img_3.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_3.jpg""></a></li> 29 <li><a href="images/cafe-img_4.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_4.jpg""></a></li> 30 <li><a href="images/cafe-img_5.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_5.jpg""></a></li> 31 <li><a href="images/cafe-img_6.jpg" data-lightbox="gallery1" data-title="グループ1キャプション"><img src="images/cafe-img_6.jpg""></a></li> 32 </ul> 33 34body終了前 35 <!-- JavaScript --> 36   <!-- jQuery --> 37 <script src="js/jquery-3.5.1.min.js"></script> 38 <!-- プラグイン --> 39   <script src="slick/lightbox.min.js"></script> 40 <script src="slick/slick.min.js"></script> 41 <script> 42 $(".slider").slick({ 43 autoplay:true, 44 autoplaySpeed:4000, 45 dots:true, 46 }); 47 </script> 48 <!-- 自作のJavaScript --> 49 <script src="js/script.js"></script> 50 51 52以下、script.jsファイル内の記述 53 54//スクロールをするとハンバーガーメニューに変化するための設定を関数でまとめる 55function FixedAnime() { 56 //ヘッダーの高さを取得 57 var headerH = $('#header').outerHeight(true); 58 var scroll = $(window).scrollTop(); 59 if (scroll >= headerH){//ヘッダーの高さ以上までスクロールしたら 60 $('.openbtn').addClass('fadeDown');//.openbtnにfadeDownというクラス名を付与して 61 $('#header').addClass('dnone');//#headerにdnoneというクラス名を付与 62 }else{//それ以外は 63 $('.openbtn').removeClass('fadeDown');//fadeDownというクラス名を除き 64 $('#header').removeClass('dnone');//dnoneというクラス名を除く 65 } 66} 67 68// 画面をスクロールをしたら動かしたい場合の記述 69$(window).scroll(function () { 70 FixedAnime();//スクロールをするとハンバーガーメニューに変化するための関数を呼ぶ 71}); 72 73// ページが読み込まれたらすぐに動かしたい場合の記述 74$(window).on('load', function () { 75 FixedAnime();//スクロールをするとハンバーガーメニューに変化するための関数を呼ぶ 76}); 77 78 79//ボタンをクリックした際のアニメーションの設定 80$(".openbtn").click(function () {//ボタンがクリックされたら 81 $(this).toggleClass('active');//ボタン自身に activeクラスを付与し 82 $("#header").toggleClass('panelactive');//ヘッダーにpanelactiveクラスを付与 83}); 84$("#g-navi li a").click(function () {//ナビゲーションのリンクがクリックされたら 85 $(".openbtn").removeClass('active');//ボタンの activeクラスを除去し 86 $("#header").removeClass('panelactive');//ヘッダーのpanelactiveクラスも除去 87}); 88 89 90//リンク先のidまでスムーススクロール 91//※ページ内リンクを行わない場合は不必要なので削除してください 92 $('#g-navi li a').click(function () { 93 var elmHash = $(this).attr('href'); 94 var pos = $(elmHash).offset().top-0; 95 $('body,html').animate({scrollTop: pos}, 1000); 96 return false; 97}); 98 99/* 6-2-1.js */ 100lightbox.option({ 101 'wrapAround': true,//グループ最後の写真の矢印をクリックしたらグループ最初の写真に戻る 102 'albumLabel': ' %1 / total %2 '//合計枚数中現在何枚目かというキャプションの見せ方を変更できる 103}) 104 105function fadeAnime(){ 106 // flipLeft 107 $('.gallery li').each(function(){ 108 var elemPos = $(this).offset().top; 109 var scroll = $(window).scrollTop(); 110 var windowHeight = $(window).height(); 111 if (scroll >= elemPos - windowHeight){ 112 $(this).addClass('flipLeft'); 113 }else{ 114 $(this).removeClass('flipLeft'); 115 } 116 }); 117}

初心者です。
行えるようにしたいことは、ヘッダーがスクロールされるとハンバーガーメニューに切り替わり表示されるようにすることと、Menu内のlightboxをクリックした際に画像が浮かび上がるようにすることです。

現状、body終了前のscript.jsがない際は、lightboxの要素が浮かび上がることを確認していますが、この場合ですと、ハンバーガーメニューに切り替わる記述をしたscript.jsを読み込ませていない為、スクロール時の動きを確認できません。
また、この際に埋め込んだGoogle Mapもスワイプできるようになっていることも確認しています。
次にscript.jsを読み込ませた状態で開くと、ハンバーガーメニューは表示されるようになりますが、lightboxもGoogle Mapも動かなくなってしまいます。

どちらの動きも実装したいので、ご教示いただけますでしょうか。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問