質問にタグを付けたのを見たresponsive-design
ので、Javascript を必要とせず、CSS だけで実行できるソリューションを提供できると考えました。
横向きモードと縦向きモードを切り替えるときに使用できる 2 つの異なる画面サイズがあることを知っていれば、メディア クエリを使用してオーバーレイを表示および非表示にすることができます。
HTML:
<div id="content">
<p>Integer velit nulla, condimentum vitae risus ut, rhoncus vulputate quam. Fusce lacus elit, accumsan eu dolor vel, scelerisque pretium turpis. Vivamus ac lectus vitae enim lacinia fringilla vel id tellus. Curabitur pharetra tortor eget risus ornare scelerisque. Morbi tempus et felis vitae venenatis. Suspendisse vitae ultrices est, nec sagittis arcu.</p>
</div>
CSS:
#rotate {
display: none;
}
@media screen and (max-width: 300px) {
#rotate {
background-color: rgba(0,0,0,0.5);
display: block;
height: 100%;
position: absolute;
top: 0;
width: 100%;
}
}
これは、使用可能な幅を確認するだけで、300px 以下の場合は、オーバーレイするコンテンツが表示されます。利用可能な幅が 300px より大きい場合、コンテンツが非表示になります。モバイル デバイスのさまざまな幅に合わせてこの値を調整して、ポートレート モードかランドスケープ モードかを確認できます。
中央の垂直バーを動かしてプレビュー ウィンドウを大きくしたり小さくしたりして、jsfiddle でこれをテストできます: http://jsfiddle.net/wv6Vp/