2017-04-24 13 views
0

タッチデバイスのサイズ変更動作を防止する方法はありますか? 私の問題は、どうすれば私は高さが60vhセクションがあります。このセクションはページの上部にあります。ユーザーがスクロールを開始すると、アドレスバーはウィンドウから消え、ブラウザはvhユニットをリフレッシュしています(正しい場合)。CSS vh単位のタッチデバイス問題

index.htmlを

<section class="top-section"> 
<!-- lots of code here --> 
</section> 

のstyle.css

.top-section { 
    height:60vh; 
} 

はCSSでこれを修正する方法はありますか、そこには他に方法がなく、そのためにJavascriptを使用しています。

答えて

1

トップバー(ナビゲーションボタンなど)の作成について話している場合は、固定要素を非表示にする最も正しい方法はJSを使用することです。

あなたは2つのオプションがあります。

オプション1)は、相対的なトップバーを持っています。
オプション2)をスクロールすると非表示になりますが、固定していますが、リスナー(scrollTop())を使用してトップバーを開閉するタイミングを決定します。

1

私はあなたのための例を作りました。アイテムを追加/削除するとvh値は変更されません。画面のサイズ変更時に変更されるのは、ドキュメントのサイズ変更時ではなくなります。下のスニペット(topsectionの高さは、セクション内のテキストとしてスクロールで表示され、それが変化していない)、またはjSFiddle

$(window).on('scroll',function(){ 
 
    \t \t \t if ($(this).scrollTop() > 0) { 
 
\t \t \t \t $(".address-bar").hide() 
 
\t \t \t }else{ 
 
\t \t \t \t $(".address-bar").show() 
 
\t \t \t } 
 
\t $(".top-section").text($(this).height()) 
 

 
});
.address-bar { 
 
\t height:5vh; 
 
\t background:blue; 
 
} 
 
.top-section { 
 
\t height:60vh; 
 
\t background:red; 
 
} 
 
.content-section { 
 
\t height:100vh; 
 
\t background:black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<section class="address-bar"> 
 
\t 
 
</section> 
 
<section class="top-section"> 
 

 
</section> 
 
<section class="content-section"> 
 

 
</section>

見ます
関連する問題