ホームページ  >  記事  >  ウェブフロントエンド  >  JS ポップアップ レイヤー マスク、背景ページのスクロール バーの詳細を非表示にする最適化分析_JavaScript スキル

JS ポップアップ レイヤー マスク、背景ページのスクロール バーの詳細を非表示にする最適化分析_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 15:03:011263ブラウズ

1. スクロールバーを削除する方法

本文に overflow:hidden 属性を追加するだけでは、IE6 および 7 では有効になりません。html
に overflow:hidden 属性を追加する必要があります。

IE6、7 およびその他のブラウザーのハックを使用してスタイルを識別する必要があります。これは、ページをプルダウンしたときに html または本文が overflow:hidden の場合、透明なポップアップ レイヤーの下のページが部分的に表示されるためです。通常は非表示になります。透明度を使用して表示されるグレー スケールは、プラットフォームとユーザーによって設定された背景色に関連しています。

本文または HTML からスクロール バーを削除すると、ページのスクロール バーの幅が 2 分の 1 にジャンプします。このジャンプはユーザー エクスペリエンスにとって非常に悪いので、本文に右パディングを追加します。そのサイズはスクロール バーの幅です。 Windows プラットフォームのスクロール バーの幅は 17 ピクセルです。Linux プラットフォームのスクロール バーの幅は、次のコードで Windows プラットフォームで計算できます。例として。

関連コード:

document.documentElement.style.cssText = ‘overflow:none;+overflow:hidden;_overflow:hidden;';
document.body.style.cssText = ‘overflow:hidden;+overflow:none;_overflow:none;padding:0 17px 0 0;';

上記のコードは、html または本文にインライン スタイルがあるかどうかを考慮しません。HTML または本文にインライン スタイルがある場合は、それらを蓄積する必要があります。そうでない場合、元のスタイルはクリアされます。

2. ページをスクロールして隠れた危険を取り除くその他の方法 (悪用を防ぐため)

スクロール バーを非表示にすると、マウス ホイールでスクロールしてもページが動かなくなります。これで大丈夫かと思いましたが、違いました...

キーボード ショートカットは、上下キーやページめくりキーなど、ページのスクロールに関連する一部のブラウザ操作も操作できます。キーボード ショートカットの場合は、デフォルトのアクションをキャンセルする必要があります。

3. ポップアップレイヤースタイルを追加します

本文にグローバル スタイルを追加 (IE6 と互換性あり)

高さ:100%;

伸縮性レイヤーにスクロール スタイルを追加します

overflow-y: auto;
width: 100%;
height: 100%;
left:0;
_padding:0 17px 0 0;   //IE6bug,子元素绝对定位后对于父元素的padding依然有效

上記の JS ポップアップ レイヤー マスク、非表示の背景ページ スクロール バーの詳細最適化分析は、エディターによって共有されたすべてのコンテンツです。参考にしていただければ幸いです。また、スクリプト ホームをサポートしていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。