2012-03-28 8 views
3

私はモバイルレイアウトで作業しており、次の質問に遭遇しました。モバイルトグルメニュー - ビューポートのビューの外にコンテンツをプッシュする方法は?

これは、「私が説明していることに対して一般的に受け入れられている用語ですか?」という疑問があります。この方法に関するチュートリアル/説明を見つけるために、次のレイアウト/トグルメニューの列シナリオでは一般的に受け入れられている名前がありますか?

Screenshot of my layout description

トグルメニューが表示されたら、基本的にサイトのオリジナルコンテンツは、部分的にビューポートの外に、右にプッシュされ、トグルメニューが表示されます。

このメソッドには名前がありますか?ベストプラクティスのリソースを見つけるためにこれをどのように記述するのかよく分かりません。また、どのようなタイプのCSS/jQueryコンボがビューポートから元のコンテンツをこのようにスクロール/プッシュするために必要であるかについてのアイデアは誰にもありますか?

一般的に受け入れられている用語、デモ、簡単な説明などの情報は大変ありがとうございます。 ありがとう!

+0

必要な動作に応じて、さまざまな方法があります。メニューを開いたときに、水平スクロールやビューポートを100%にしますか? – mddw

+0

偉大な質問 - 申し訳ありませんが、私は水平スクロールバーが欲しいと言わないことを忘れていました。私はビューポートを100%のままにし、メインのコンテンツを再び見て、再び隠れるようにメニューを切り替えることを主な方法としたいと思います。 – LearnWebCode

答えて

3

そう...

<meta name="viewport" content="width=device-width, initial-scale=1"> 
    <body> 
    <div> 
     <div> 
      <div></div> 
      <div></div> 
     </div> 
    </div> 
    </body> 

2つの最後のdivがあなたのメニューやコンテンツです。

その後、CSSは:

* 
{ 
margin : 0; 
padding : 0; 
} 

html, body 
{ 
    width : 100%; 
    height : 100%; 
} 

body > div 
{ 
    width : 100%; 
    max-width : 100%; 
    height : 100%; 
    overflow : hidden; 
} 

body > div > div 
{ 
    width : 200%; 
    height : 100%; 
    -webkit-transform : translate(-40%); 
    -webkit-transition : -webkit-transform 1s linear; 
} 

    body > div > div.hover 
    { 
     -webkit-transform : translate(0%); 
    } 

body > div > div > div 
{ 
    float : left; 
    height : 100%; 
} 

body > div > div > div:first-child 
{ 
    width : 40%; 
    background : red; 
} 
body > div > div > div:first-child+div 
{ 
    width : 50%; 
    background : blue; 
} 

それは(それは簡単なようでないかもしれないとしても)非常に簡単です:

  1. 100%で、最初のdivとオーバーフロー:隠されました。スクロールを防止します。これを行うには本体 を使用する必要がありますが、iOSの奇妙な点がこれを防止します。

  2. 2番目のdivは2つの浮動小数点を保持する大きなコンテナです
    div。この大きな容器は翻訳されています。

  3. 3番目のdivはメニューとコンテンツです。

オンザフライで%を計算しました。それらを調整する必要があります。

次に、それをテストするためにビットあなたのjQuery:

<script> 
$(document).on('touchstart', function() 
{ 
    $("body > div > div").addClass("hover"); 
}); 
</script> 

あなたはそれが唯一のデモの目的のためだ、touchstartイベントを使用しないでください。

iOS 5.1とAndroid 2.3でテスト済みです。

+0

うわー、ありがとう!あなたは命の恩人です。そのような例では、さまざまな技術が一緒になっているのを目の当たりにするのに役立ちます。私はこのような何かを自分自身で実装する方法についてのあなたの答えに先立って少し無知だった。今度は、このカスタムソリューションを使用するのか、他のユーザーが提案したPageslideプラグインを使用するのかを決定するだけです。ありがとうmdi! – LearnWebCode

+0

ちょうど精度:100%の高さをすべて取り除かなければならない場合があります。 – mddw

+0

ヘッドアップありがとう。私はあなたのサンプルコードからデモをまとめて、100%の高さはコンテンツがなくても目に見えるように "仕事"をしました。 – LearnWebCode

2

これはあなたには役に立たないのかどうかは分かりませんが、あなたの説明に似た何かをするjQueryプラグインがあります。この(醜い)マークアップを想定し

http://srobbin.com/jquery-plugins/pageslide/

+0

それは素晴らしいです!まさに私が描こうとしていたことです - ありがとう! – LearnWebCode

関連する問題