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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

0回答

527閲覧

rails に bootstrapのテンプレートを適用したら、レスポンシブ用のナビバーが閉じない

KOUDAI.A

総合スコア0

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2021/02/08 09:17

前提・実現したいこと

ruby on railsのwebアプリのトップページにテンプレートbootstrapを挿入適用したい

webpackerを使ってbootstrap,jquery,popper,fontawesomeなどを導入しました。
参考
https://youtu.be/bn9arlhfaX

その後にテンプレートを挿入しました。
参考
https://youtu.be/5e3enFye--U

デザインや動きは想像通りにいったものの、ナビのメニューがもう一度クリックしても閉じないことに気がつきました。これをもう一度押したら閉じるようにしたいです。

関係あるのか分かりませんが、そもそものダウンロードしたテンプレートのコンソールに以下のエラーメッセージが発生していて当然自分のサイト上にも引き継がれています

jquery.easing.min.js:1 Uncaught TypeError: Cannot read property 'swing' of undefined at jquery.easing.min.js:1 at jquery.easing.min.js:1 at jquery.easing.min.js:1

環境
Mac OS
ruby 2.6.3
rails 6.1.1
bootstrap 4.5.3

html

1<!-- app>views>layouts>applciation.html.erb --> 2<!DOCTYPE html> 3<html lang="en"> 4 <head> 5 <title>Manegement_app</title> 6 <meta name="viewport" content="width=device-width,initial-scale=1 shrink-to-fit=no"> 7 <%= csrf_meta_tags %> 8 <%= csp_meta_tag %> 9 10 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 11 <%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 12 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 13 14 15 <!-- Font Awesome icons (free version) --> 16 <script src="https://use.fontawesome.com/releases/v5.15.1/js/all.js" crossorigin="anonymous"></script> 17 18 19 <link href="https://fonts.googleapis.com/css?family=Merriweather+Sans:400,700" rel="stylesheet" /> 20 <link href="https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic" rel="stylesheet" type="text/css" /> 21 22 23 <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" rel="stylesheet" /> 24 25 26 <link href="static_pages/css/styles.css" rel="stylesheet" /> 27 28 29 </head> 30 31 <body id="page-top"> 32 33 34 <%= render 'layouts/navbar' %> 35 36 <%= yield %> 37 38 39 <footer class="bg-light py-5"> 40 <div class="container"><div class="small text-center text-muted">Copyright © 2021 - Koudai Akiwa</div></div> 41 <!--<div class="container"><div class="small text-center text-muted">Copyright © 2020 - Start Bootstrap</div></div>--> 42 </footer> 43 44 45 <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> 46 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script> 47 <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"></script> 48 <script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js"></script> 49 50 51 52 <script src="static_pages/js/scripts.js"></script> 53 54 55 </body> 56 57 58 59 60 61 62 63</html> 64 65
<!-- app>views>layouts>_navbar.html.erb --> <!-- Navigation--> <nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav"> <div class="container"> <a class="navbar-brand js-scroll-trigger" href="#page-top">Manegement App</a> <!--title変更--> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button> <div class="collapse navbar-collapse" id="navbarResponsive"> <ul class="navbar-nav ml-auto my-2 my-lg-0"> <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#about">About</a></li> <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#services">Services</a></li> <!--<li class="nav-item"><a class="nav-link js-scroll-trigger" href="#portfolio">Price</a></li>--> <li class="nav-item"><a class="nav-link js-scroll-trigger" href="#contact">Contact</a></li> </ul> </div> </div> </nav>

Javascript

1/*! 2 * app>static_pages>js>script.js 3 * Start Bootstrap - Creative v6.0.4 (https://startbootstrap.com/theme/creative) 4 * Copyright 2013-2020 Start Bootstrap 5 * Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-creative/blob/master/LICENSE) 6 */ 7 (function($) { 8 "use strict"; // Start of use strict 9 10 // Smooth scrolling using jQuery easing 11 $('a.js-scroll-trigger[href*="#"]:not([href="#"])').click(function() { 12 if (location.pathname.replace(/^//, '') == this.pathname.replace(/^//, '') && location.hostname == this.hostname) { 13 var target = $(this.hash); 14 target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 15 if (target.length) { 16 $('html, body').animate({ 17 scrollTop: (target.offset().top - 72) 18 }, 1000, "easeInOutExpo"); 19 return false; 20 } 21 } 22 }); 23 24 // Closes responsive menu when a scroll trigger link is clicked 25 $('.js-scroll-trigger').click(function() { 26 $('.navbar-collapse').collapse('hide'); 27 }); 28 29 // Activate scrollspy to add active class to navbar items on scroll 30 $('body').scrollspy({ 31 target: '#mainNav', 32 offset: 75 33 }); 34 35 // Collapse Navbar 36 var navbarCollapse = function() { 37 if ($("#mainNav").offset().top > 100) { 38 $("#mainNav").addClass("navbar-scrolled"); 39 } else { 40 $("#mainNav").removeClass("navbar-scrolled"); 41 } 42 }; 43 44 45 // Collapse now if page is not at top 46 navbarCollapse(); 47 // Collapse the navbar when page is scrolled 48 $(window).scroll(navbarCollapse); 49 50 // Magnific popup calls 51 $('#portfolio').magnificPopup({ 52 delegate: 'a', 53 type: 'image', 54 tLoading: 'Loading image #%curr%...', 55 mainClass: 'mfp-img-mobile', 56 gallery: { 57 enabled: true, 58 navigateByImgClick: true, 59 preload: [0, 1] 60 }, 61 image: { 62 tError: '<a href="%url%">The image #%curr%</a> could not be loaded.' 63 } 64 }); 65 66})(jQuery); // End of use strict 67

javascript

1//app>javascript>packs>application.js 2import Rails from "@rails/ujs" 3import Turbolinks from "turbolinks" 4import * as ActiveStorage from "@rails/activestorage" 5import "channels" 6 7Rails.start() 8Turbolinks.start() 9ActiveStorage.start() 10 11import 'bootstrap' 12import '../stylesheets/application' 13import '@fortawesome/fontawesome-free/js/all' 14 15 16

試したこと

Bootstrapで出た、ハンバーガーメニューが閉じないエラー解決

上記の記事をみて、該当するscriptタグを削除してみたとろ

<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"></script>

このタグを削除したらナビバーの部分は上手くいったのですが、consoleでscripts.js:29 Uncaught TypeError: $(...).scrollspy is not a functionとエラー文が出てしまい、ナビバーがスクロールされたときのスタイルがない状況です

###原因の予想(問題について自分なりに考えたこと)

・turbolinksが原因かもしれないとググっていて予想できましたが、何をどうすればいいか分かりません....

・それかjquery,bootstrapの導入の際何か他のことをしてしまった可能性もあります...

雑な質問で大変申し訳ないですが、知見のあるかたお答えいただけると幸いです。よろしくお願いします

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問