少し前に、卒業を控えたネットユーザーから、卒業プロジェクトでロック画面効果を実現する必要があるというメールが届きましたが、私が以前に投稿したダイアログ ボックスのソース コードが理解できなかったので、説明してもらえないかと尋ねられました。ロック画面関連のコードは 2 日以内に投稿すると言いました。最近とても忙しかったので今思い出したのですが、この記事を書くのに遅くないことを願っています。
本題に入ります:
現在、フルスクリーンの半透明マスク レイヤーは、Web2.0 Web サイトで広く使用されています。ほとんどのマスクは、ページ サイズを計算し、Tencent qzone や wordpress バックエンドなどのページと同じサイズのレイヤーで覆うことによって実装されます。 。この方法は理解できますが、ページが非常に長い場合、IE8 では失敗します (海外情報によると、完璧なプロットを持つ一部の学生は、この問題に遭遇して頭を悩ませました)。 、私ですら、IE8 が彼の作品を解析するために IE7 の方法を使用することを強制されることを望んでいます。実はもっと良い方法があるので、 CSS を使って解決してみましょう。
「 position:fixed 」を覚えていますか?これは CSS2 の新しい属性です。たとえば、Qzone の上部にある固定ナビゲーション バーは、この方法で実装されます。同様に、高さと幅が 100% のレイヤーを使用してブラウザのビューポートをカバーすることもできるため、全画面マスキングを実現できます。ページのサイズを計算したり、動的に変更したりする必要はありません。ブラウザのサイズを変更するときのサイズ。
コードボックスを実行
[Ctrl+A すべて選択 ヒント: 最初にコードの一部を変更してから実行を押すことができます]
ただし、IE6 は「position:fixed」をサポートしていません。スクロール バーをドラッグすると、IE が変更されるたびにマスクが確実に揺れてしまいます。 -再度レンダリングします。しかし、Microsoft は非常に興味深い機能を提供してくれました。html タグまたは body タグに静的に配置された背景画像を設定すると、スクロール バーがドラッグされてもレイヤーは揺れず、「position:fixed」をほぼ完全にシミュレートします。実際のプロジェクトでは、この機能が他の特殊な機能もトリガーできることがわかりました。これについては後で説明します。
トラブルを避けるために、邪悪な式を使用して IE6 用の CSS でいくつかのスクリプトを記述し、スクロール バーをドラッグするときにマスク レイヤーの位置を変更します。表現はパフォーマンスを非常に重視すると言われていますが、興味のある学生は表現を深く学ぶことができます。
コードボックスを実行
[Ctrl+A すべて選択 ヒント: 最初にコードの一部を変更してから実行を押すことができます]
さて、大きな頭の人形 IE6 と互換性を持った後、私たちのロック画面マスクは主流のブラウザーに採用されました。しかし、js を使用してエフェクトを作成する学生は常に非常にイライラしており、常に何かを追加したいと考えています。画面がロックされているときにユーザー操作を中断し、スクロール バー、ホイール、タブ キーを無効にし、すべてを選択し、更新し、右クリックして実際の「ロック画面」をシミュレートする小さなスクリプトです。
コードボックスを実行
[Ctrl+A すべて選択 ヒント: 最初にコードの一部を変更してから実行を押すことができます]
原文: http://www.planeart.cn/? p=792