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

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

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

上の写真を見ると、何でもないことのように思えるかもしれませんし、簡単にできそうに思えるかもしれません。さて、この効果を詳しく分析してみましょう。標準実装を使用すると、画像を 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 タグを使用する方法

推薦する

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

js QRコードスキャンログインの原理についての簡単な説明

目次QRコードログインの真髄QRコードを理解するシステム認証メカニズムQRコードをスキャンしてログイ...

WAMPにインストールするとMySQLが起動できるが、再起動後に起動できなくなる問題の解決方法

初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

MySQLはパスワードなしでログインする例を実装しています

具体的な方法:ステップ1: mysqlサービスを停止する /etc/init.d/mysqld を停...

Linux nlコマンドの使い方

1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...

Windows 10 Home Edition に Docker をインストールする方法

最近、プロジェクトをアップグレードするために Docker を使用しました。これまで使用したことがな...

Mysql の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

WeChatミニプログラムページとコンポーネント間の情報伝達と機能呼び出し

今回は、私自身の開発経験を踏まえて、以下の観点で関連内容を解説します。ページからコンポーネントにデー...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...

Vue v-onディレクティブの使用について

目次1. イベントのリスニング2. イベントパラメータを渡す3. イベント修飾子ケース1: クリック...

MySqlエスケープの詳細な使用例

MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...