マウスを傾けた状態でのフリップナビゲーションの問題に関する研究

マウスを傾けた状態でのフリップナビゲーションの問題に関する研究
この記事では、マウス フリップナビゲーションの制作についてまだ疑問を持っている友人の役に立つことを期待して、傾斜したマウス フリップ ナビゲーションの制作を例として分析します。
一昨日、オンライン上の友人からページが送られてきて、マウスのロールオーバーができない理由を解明するのを手伝ってほしいと頼まれました。ソース ファイルを開いて確認したところ、作成者はマウス ロールオーバー機能すら持っていないことがわかりました。また、傾斜ナビゲーションについては十分に考慮されていませんでした。当時私はこれらの問題に気づいていましたが、プロジェクトを終えようとしていたため、彼女に説明する時間がありませんでした。昨日仕事を終えて、今ファイルを取り出して見てみたところ、この事件を通して多くの知識ポイントを説明できることが分かりました。いくつかの箇所は簡単に無視されがちですが、実際には非常に重要な箇所です。

まず、実現したい効果について考えてみましょう。もちろん、実際に実現する前には、これらは頭の中やスケッチの中にしか存在しません。まず、それがどのように見えるかを考え、それから望ましい効果を達成する方法を分析する必要があります。さっそく、まずは画像を見てみましょう。

上の写真を見ると、何でもないことのように思えるかもしれませんし、簡単にできそうに思えるかもしれません。さて、この効果を詳しく分析してみましょう。標準実装を使用すると、画像を HTML に直接挿入することはできません。標準的な方法で行うには、CSS を使用して画像を背景として呼び出す必要があります。それでは、このようなナビゲーションを直接呼び出せるかどうか確認してみましょう。何か問題はありますか? このナビゲーション効果の拡大画像をご覧ください。


上の図の「危険ゾーン」は非常に明白であることに注意してください。 2 つの傾斜した正のブロックを組み合わせると、必然的に繰り返し領域が発生します。 現在の CSS では、特殊な形状の処理はサポートされていません。この問題を解決するには、2 つのブロックを重ねる必要があります。重複させるには、異なるレベルに配置する必要があります。これには、CSS での配置の使用が必要です: "position: static | absolute | fixed | relative"。
マウスのロールオーバーを行うには、通常、すべての背景を 1 つの画像にまとめ、CSS を使用して、異なるタグの下で画像のさまざまな位置を設定します。おそらく、このナビゲーションの背景画像は次のようにすべきだと考える人もいるでしょう。

本当にそう思うなら、問題が発生します。マウスを 5 つのブロックのいずれかに移動すると、上の危険ゾーンの繰り返し部分が左右のナビゲーションの角をブロックします。通常の方法は次のようになります:


この方法でのみ、危険ゾーンのない最終的な背景画像として使用できます。もちろん、背景が白ではなく透明であることにも注意する必要があります。主な目的は、Web サイトの背景と溶け込まないことです。危険ゾーンで隣接する背景をブロックしないようにすることが重要です。私は GIF 画像を使用しますが、GIF 画像が透明になると、多少の粗さが生じます。異なる色のウェブサイトの背景を扱う場合は、PNG を使用するか、GIF 画像の端をピクセル化するのが最適です。
この背景画像について考えた後、このナビゲーションをどのように作成するかを考える必要があります。まず、マウスのロールオーバーを分析してみましょう。元々、マウスのロールオーバーは JS によって行われていましたが、現在は CSS の :hover を使用して、より少ないコードと明確な構造でこの効果を実現できます。したがって、これら 5 つのナビゲーションの反転は、A:hover によって実現されます。

<<:  MySQLデータのバックアップ方法の選択と考え方

>>:  XHTML コードで Marquee タグを使用する方法

推薦する

Vue computedのキャッシュ実装原理の詳細な説明

目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...

画像の下部の空白部分の問題を解決する

最近のプロジェクトに取り組んでいるとき、下の図に示すように、画像を参照すると常に下部に空白スペースが...

Docker コンテナ アプリケーションで避けるべき 10 の悪い習慣

コンテナが企業の IT インフラストラクチャに欠かせない要素となっていることは間違いありません。コン...

Vue カスタム箇条書きボックス効果 (確認ボックス、プロンプトボックス)

この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

VUEウォッチリスナーの基本的な使い方の詳しい説明

目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

CSS の複雑なセレクターと CSS のフォントスタイルと色属性の詳細な説明

これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...

Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法

最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...

MySQL 検査スクリプト (必読)

以下のように表示されます。 #!/usr/bin/env python3.5 psutilをインポー...

ハイパーリンクを開くターゲットのテスト

リンクのターゲット属性は、リンクが開く場所を決定します。その値は通常、_blank、_self、_p...

テーブルタグ(テーブル)詳細

<br />テーブルは、昔から誰もが使ってきたタグで、今も使われています。しかし、現在の...

MySQL 外部キー制約の無効化と有効化コマンド

MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...