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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

1回答

3698閲覧

[js]スマホサイトで横から表示するハンバーガーメニューを実装する方法

eko1789

総合スコア12

JavaScript

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

jQuery

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

HTML

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

CSS

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

0グッド

2クリップ

投稿2015/06/01 06:45

編集2015/06/02 04:39

スマホサイトで横から表示するハンバーガーメニューを実装する方法。

現在スマホサイトを作成しておりますが
よくある上から下へ、上下の動きをするハンバーガーメニューではなく
右上から下へ動くメニューを作りたく

jQureyでの実装方法がつかめず質問させて頂きました。

メニューの中身は背景に引いている画像と
その上にテキストリンクを置きたいと思っております。

おそらくイメージつきづらいかと思いますが
slideToggleではなくToggleの動きに近い形をイメージしております。

ただToggleのようにメニューの大きさをいじるのではく
元の大きさの状態で右上からすっとメニューが降りてくるのが理想です。

実装方法ご存知の方いらっしゃいましたら
何卒、ご教授よろしくお願い致します。

現在他の方が作ったjQueryを参考に作っておりますが
その処理だとAndroidでメニューがdisply:noneになってないようで
横幅が大きく右側に開いてしまい
その上部にハンバーガーメニューが見えます。
そしてボタンを押すことができないので処理が動きません。

説明がへたで伝わりづらいかと思いますので
実際のjs(二つ読み込んでいます。)のソースをお送りいたします。

lang

1/** 2 * main.js 3 * http://www.codrops.com 4 * 5 * Licensed under the MIT license. 6 * http://www.opensource.org/licenses/mit-license.php 7 * 8 * Copyright 2014, Codrops 9 * http://www.codrops.com 10 */ 11(function() { 12 13 var bodyEl = document.body, 14 content = document.querySelector( '.content-wrap' ), 15 openbtn = document.getElementById( 'open-button' ), 16 closebtn = document.getElementById( 'close-button' ), 17 isOpen = false; 18 19 function init() { 20 initEvents(); 21 } 22 23 function initEvents() { 24 openbtn.addEventListener( 'click', toggleMenu ); 25 if( closebtn ) { 26 closebtn.addEventListener( 'click', toggleMenu ); 27 } 28 29 // close the menu element if the target it´s not the menu element or one of its descendants.. 30 content.addEventListener( 'click', function(ev) { 31 var target = ev.target; 32 if( isOpen && target !== openbtn ) { 33 toggleMenu(); 34 } 35 } ); 36 } 37 38 function toggleMenu() { 39 if( isOpen ) { 40 classie.remove( bodyEl, 'show-menu' ); 41 } 42 else { 43 classie.add( bodyEl, 'show-menu' ); 44 } 45 isOpen = !isOpen; 46 } 47 48 init(); 49 50})();

lang

1/*! 2 * classie - class helper functions 3 * from bonzo https://github.com/ded/bonzo 4 * 5 * classie.has( elem, 'my-class' ) -> true/false 6 * classie.add( elem, 'my-new-class' ) 7 * classie.remove( elem, 'my-unwanted-class' ) 8 * classie.toggle( elem, 'my-class' ) 9 */ 10 11/*jshint browser: true, strict: true, undef: true */ 12/*global define: false */ 13 14( function( window ) { 15 16'use strict'; 17 18// class helper functions from bonzo https://github.com/ded/bonzo 19 20function classReg( className ) { 21 return new RegExp("(^|\\s+)" + className + "(\\s+|$)"); 22} 23 24// classList support for class management 25// altho to be fair, the api sucks because it won't accept multiple classes at once 26var hasClass, addClass, removeClass; 27 28if ( 'classList' in document.documentElement ) { 29 hasClass = function( elem, c ) { 30 return elem.classList.contains( c ); 31 }; 32 addClass = function( elem, c ) { 33 elem.classList.add( c ); 34 }; 35 removeClass = function( elem, c ) { 36 elem.classList.remove( c ); 37 }; 38} 39else { 40 hasClass = function( elem, c ) { 41 return classReg( c ).test( elem.className ); 42 }; 43 addClass = function( elem, c ) { 44 if ( !hasClass( elem, c ) ) { 45 elem.className = elem.className + ' ' + c; 46 } 47 }; 48 removeClass = function( elem, c ) { 49 elem.className = elem.className.replace( classReg( c ), ' ' ); 50 }; 51} 52 53function toggleClass( elem, c ) { 54 var fn = hasClass( elem, c ) ? removeClass : addClass; 55 fn( elem, c ); 56} 57 58var classie = { 59 // full names 60 hasClass: hasClass, 61 addClass: addClass, 62 removeClass: removeClass, 63 toggleClass: toggleClass, 64 // short names 65 has: hasClass, 66 add: addClass, 67 remove: removeClass, 68 toggle: toggleClass 69}; 70 71// transport 72if ( typeof define === 'function' && define.amd ) { 73 // AMD 74 define( classie ); 75} else { 76 // browser global 77 window.classie = classie; 78} 79 80})( window );

lang

1<div class="menu-wrap clearfix"> 2<nav class="nav-inner"> 3<div class="nav_logo"><img src="images/head_nav_tit.gif" alt="" width="100%"></div> 4<ul class="nav_list clearfix"> 5<li><a href="#"></a></li> 6<li><a href="#"></a></li> 7<li><a href="#"></a></li> 8<li><a href="#"></a></li> 9<li><a href="#"></a></li> 10</ul> 11</nav> 12<button class="close-button" id="close-button">Close</button> 13</div>

lang

1body{ 2 overflow-x:hidden; 3 4} 5 6.container { 7} 8 9.content-wrap { 10 overflow-y: scroll; 11 -webkit-overflow-scrolling: touch; 12 -webkit-transition: -webkit-transform 0.3s; 13 transition: transform 0.3s; 14} 15 16 17 18/* Close Button */ 19.close-button { 20 width: 2.5em; 21 height: 2.5em; 22 position: absolute; 23 right: 1em; 24 top: 1em; 25 overflow: hidden; 26 text-indent: 1em; 27 border: none; 28 background: transparent; 29 color: transparent; 30} 31 32.close-button::before, 33.close-button::after { 34 content: ''; 35 position: absolute; 36 width: 2px; 37 height: 100%; 38 top: 0; 39 left: 50%; 40 background: #ec0085; 41} 42 43.close-button::before { 44 -webkit-transform: rotate(45deg); 45 transform: rotate(45deg); 46} 47 48.close-button::after { 49 -webkit-transform: rotate(-45deg); 50 transform: rotate(-45deg); 51} 52 53/* Menu */ 54.menu-wrap { 55 position: absolute; 56 z-index: 1001; 57 width: 150%; 58 height: 100%; 59 right:0; 60 background-image: url(../images/head_nav_bg.png); 61 background-repeat: no-repeat; 62 background-size: 100%; 63 background-position: right top; 64 padding: 2em; 65 -webkit-transform: translate3d(600px,-600px,0); 66 transform: translate3d(600px,-600px,0); 67 -webkit-transition: -webkit-transform 0.3s; 68 transition: transform 0.3s; 69} 70 71.nav-inner{ 72 width:60%; 73 float:right; 74 75} 76 77.nav-inner .nav_logo { width: 35%; margin: 0 0 0 4%;} 78.nav-inner ul.nav_list {} 79.nav-inner ul.nav_list li { float: left; width:38%; margin: 10px 0 0 4%; padding: 5.5% 0 5% 7%; background-image: url(../images/head_nav_arr.gif); background-position: left center; background-size: 10%; background-repeat: no-repeat; font-size: 1.2em; line-height: 1; text-align: left;} 80 81 82/* Shown menu */ 83.show-menu .menu-wrap { 84 -webkit-transform: translate3d(0,0,0); 85 transform: translate3d(0,0,0); 86}

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

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

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

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

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

ikuwow

2015/06/01 06:54

ややコードが長いので、コードの部分をMarkdown記法の```で囲む方法でシンタックスハイライトしていただくと助かります。
eko1789

2015/06/01 12:14

ハイライトの方法を知らず、お待たせいたしました。 変更いたしました。
1000

2015/06/01 15:17

html とCSSも提示してくれるとわかるんですが。
eko1789

2015/06/02 04:40

追加いたしました。よろしくお願い致します。
iciclize

2015/06/02 05:32

htmlは全部見せていただきたいです。あと、.content-wrapと#close-buttonが見当たらないようですが…
guest

回答1

0

.content-wrapと#close-buttonが見当たらないようですが…

js、cssに記述はあるが入れ込んでいないid、classもあります。

今回の問題は横にハンバーガーメニューが表示されるということでしたので
いったん落ち着いて、全体をdivで囲い
{ width:100%; position:relative; overflow:hidden;}と指定してやることで
解決することができました。
皆様、ご協力いただきありがとう御座います。

投稿2015/06/03 05:51

編集2015/06/03 05:52
eko1789

総合スコア12

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

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

iciclize

2015/06/03 09:28

解決なされたのですね。でしたらこの質問を解決済にすることでこのトピックを完結させることができますので、よろしくおねがいします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問