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

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

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

Materializeは、Googleが提唱するマテリアルデザインのサイト作成ができるCSSのフレームワーク。頻繁に使用されるスタイルが既に定義されており、優れたデザインのページを作成できます。また、レスポンシブWebデザインにも対応可能です。

JavaScript

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

Q&A

解決済

2回答

668閲覧

Materializeのsidenav機能におけるdropdownが機能しない

HirakuMorishima

総合スコア29

Materialize

Materializeは、Googleが提唱するマテリアルデザインのサイト作成ができるCSSのフレームワーク。頻繁に使用されるスタイルが既に定義されており、優れたデザインのページを作成できます。また、レスポンシブWebデザインにも対応可能です。

JavaScript

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

0グッド

0クリップ

投稿2019/07/07 23:00

##状況
現在、Materialize公式のsidenavを導入し、サイドメニューの中にdropdown機能を追加しようとしています。
sidenav自体はiconをクリックすると左から出てくるような形で、
dropdownメニューは、そのsidenavの中にあり、クリックするとdropdownされるという形式にしています。

以下は実際にsidenavが展開しているところです。
イメージ説明

以下が、そのコードとなります。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Materialize_sample</title> 6 <!-- Compiled and minified CSS --> 7 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"> 8 <!-- Compiled and minified JavaScript --> 9 <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script> 10 <!--Import Google Icon Font--> 11 <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 12</head> 13<body> 14 <ul id="slide-out" class="sidenav"> 15 <li><a href="#!">First Sidebar Link</a></li> 16 <li><a href="#!">Second Sidebar Link</a></li> 17 <li class="no-padding"> 18 <ul class="collapsible collapsible-accordion"> 19 <li> 20 <a class="collapsible-header">Dropdown<i class="material-icons">arrow_drop_down</i></a> 21 <div class="collapsible-body"> 22 <ul> 23 <li><a href="#!">First</a></li> 24 <li><a href="#!">Second</a></li> 25 <li><a href="#!">Third</a></li> 26 <li><a href="#!">Fourth</a></li> 27 </ul> 28 </div> 29 </li> 30 </ul> 31 </li> 32 </ul> 33 <ul class="right hide-on-med-and-down"> 34 <li><a href="#!">First Sidebar Link</a></li> 35 <li><a href="#!">Second Sidebar Link</a></li> 36 <li><a class="dropdown-trigger" href="#!" data-target="dropdown1">Dropdown<i class="material-icons right">arrow_drop_down</i></a></li> 37 <ul id='dropdown1' class='dropdown-content'> 38 <li><a href="#!">First</a></li> 39 <li><a href="#!">Second</a></li> 40 <li><a href="#!">Third</a></li> 41 <li><a href="#!">Fourth</a></li> 42 </ul> 43 </ul> 44 <a href="#" data-target="slide-out" class="sidenav-trigger"><i class="material-icons">menu</i></a> 45 46<script> 47 document.addEventListener('DOMContentLoaded', function() { 48 var elems = document.querySelectorAll('.sidenav'); 49 var instances = M.Sidenav.init(elems, {}); 50 }); 51</script> 52</body> 53</html>

##現状
現状としては、
・sidenavは展開する
・dropdownの文字をクリックしてもdropdown-contentが出てこない
という状況です。

developer toolを確認しましたが、エラーは出ておりませんでした。

以下のリンクを参考にしましたが分かりませんでした。
https://stackoverflow.com/questions/35951350/materialize-dropdown-and-sidenav-doesnt-work
http://umetyuu.hatenablog.com/entry/2015/04/27/183917

どのようにすればdropdownが機能するでしょうか。
教えていただきますよう、よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

html

1 2 <li> 3 <a class="collapsible-header" data-target="collapsible-data">Dropdown<i class="material-icons">arrow_drop_down</i></a> 4 <div class="collapsible-body" id="collapsible-data"> 5 <ul> 6 <li><a href="#!">First</a></li> 7 <li><a href="#!">Second</a></li> 8 <li><a href="#!">Third</a></li> 9 <li><a href="#!">Fourth</a></li> 10 </ul> 11 </div> 12 </li>

javascript

1 document.addEventListener('DOMContentLoaded', function() { 2 var elems = document.querySelectorAll('.sidenav'); 3 var instances = M.Sidenav.init(elems, {}); 4 var drop = document.querySelectorAll('.dropdown-trigger'); 5 var drop_instances = M.Dropdown.init(drop, {}); 6 var drop_in_nav = document.querySelectorAll('.collapsible-header'); 7 var drop_instances = M.Dropdown.init(drop_in_nav, {}); 8 }); 9

投稿2019/07/08 11:41

HirakuMorishima

総合スコア29

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

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

0

ベストアンサー

dropdownのInitializationも入れる必要があるように思います。

投稿2019/07/07 23:58

編集2019/07/08 01:34
m.ts10806

総合スコア80850

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

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

HirakuMorishima

2019/07/08 11:40

ご返答ありがとうございます。 dropdownの初期化とdata-targetの指定を行なっておりませんでした。
m.ts10806

2019/07/08 11:49

ヒントになったようで何よりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問