目次
スイッチスイッチ
遷移効果
少しjavascript
ホームページ ウェブフロントエンド CSSチュートリアル メニューがページで明らかになります。アニメーションを回転させます

メニューがページで明らかになります。アニメーションを回転させます

Apr 02, 2025 pm 01:47 PM

メニューがページで明らかになります。アニメーションを回転させます

Webサイトメニューのデザイン方法は多様です。一部のメニューが常に表示され、すべてのオプションが直接表示されます。その他は隠されており、拡張するためにクリックする必要があります。非表示のメニューの拡張方法は異なります。一部のスライドアウトとカバーコンテンツ、コンテンツを押しのけ、フルスクリーンディスプレイを使用するものもあります。

各方法には利点と短所があり、最良の選択は特定のアプリケーションシナリオに依存します。私は個人的にスライドアウトメニューを好みますが、確かにすべての状況が適用されるわけではありません。ただし、スペースを節約してアクセスしやすいメニューが必要な場合は、スライドアウトメニューを上回りにくくなります。

ただし、スライドアウトメニューは多くの場合、ページコンテンツと競合します。少なくともコンテンツをブロックし、最悪の場合はUIからコンテンツを完全に削除します。

固定位置メニューの耐久性と使いやすさを組み合わせた別のアプローチと、現在のコンテンツからユーザーを削除せずにスペース節約の隠されたスライドアウトメニューを組み合わせました。

これが私の実装方法です。

スイッチスイッチ

2つの状態(オンとクローズ)を備えたメニューを構築し、2つの状態を切り替えています。これは、チェックボックスのトリックが登場する場所です。チェックボックスには、これらの状態をトリガーするために使用できる2つの一般的なインタラクティブ状態(およびチェックされていない(および不確実な状態))があるため、完璧です。

チェックボックスはメニューアイコンの下に隠されており、CSSを使用して配置されているため、ユーザーが対話しても表示されません。チェックボックス(または、 ahem 、メニューアイコン)を選択すると、メニューが表示されます。チェックアンチェックはそれを隠します。そんなに簡単です。仕事をするためにJavaScriptさえ必要ありません!

もちろん、チェックボックスのトリックは唯一の方法ではありません。JavaScriptを使用してクラスを切り替えてメニューを開閉する場合は、まったく問題ありません。

重要なことに、チェックボックスはソースコードのメインコンテンツの先を行っている必要があります。最終的には、兄弟セレクターが必要な:checkedセレクターを記述するためです。これがレイアウトの問題を引き起こす場合は、CSSカウントの利点を活用する方法など、ソースコードの順序とは何の関係もないため、レイアウトにグリッドまたはフレックスボックスを使用してください。

appearance CSSプロパティを使用して、チェックボックスのデフォルトスタイル(ブラウザによって追加)を削除し、ユーザーがチェックボックスブロックを表示できないようにメニューアイコンに擬似エレメントを追加します。

まず、基本タグ:

<input type="checkbox" id="menu-toggle">
<div id="page">
  
</div>
<div id="menu">
  
</div>
ログイン後にコピー

チェックボックスのトリックとメニューアイコンの基本的なCSS:

 /*チェックボックスを非表示にして、スタイルをリセットします*/
入力[type = "チェックボックス"] {
  外観:初期; /*ボックスを削除*/
  ボーダー:0;マージン:0;アウトライン:なし; /*デフォルトのマージン、境界、輪郭を削除*/
  幅:30px;高さ:30px; /*メニューアイコンサイズを設定*/
  z-index:1; /*トップにあることを確認してください*/
}

/*メニューアイコン*/
入力::後{
  コンテンツ: "\ 2255";
  表示:ブロック;
  フォント:25pt/30px「ジョージア」;
  テキストインデント:10px;
  幅:100%;高さ:100%;
}

/*ページコンテンツコンテナ*/
#page {
  背景:url( "earbuds.jpg")#ebebeb center/cover;
  幅:100%;高さ:100%;
}
ログイン後にコピー

また、フルサイズの背景画像になる#pageコンテンツのスタイルも追加しました。

遷移効果

メニューコントロールをクリックすると、2つのことが起こります。まず、メニューアイコンが「×」マークに変更され、クリックしてメニューを閉じることができることを示します。したがって、入力が:checked状態にある場合、チェックボックスに入力された擬似要素::afterを選択します。

入力:チェック::後{
  コンテンツ: "\ 00D7"; /*「×」タグに変更*/
  色:#ebebeb;
}
ログイン後にコピー

次に、メインコンテンツ(「ヘッドフォン」画像)が変換され、以下のメニューが表示されます。それは右に動き、回転して縮み、その左隅は角度になります。これは、開いたドアのように、コンテンツを押し戻されているように見せるためです。

入力:checked〜 #page {
  クリップパス:ポリゴン(0 8%、100%0、100%100%、0 92%);
  変換:transtex(40%)rotatey(10deg)スケール(0.8);
  変換オリジン:右中央;
  遷移:すべて.3S線形。
}
ログイン後にコピー

clip-pathを使用して、画像の角度を変更します。

変換に遷移を適用しているため、 #pageには最初のclip-path値が必要になるため、移行を行うものがあります。また、 #pageにトランジションを追加します。これにより、開くにつれてスムーズに閉じることができます。

 #page {
  背景:url( "earbuds.jpeg")#ebebeb center/cover;
  クリップパス:ポリゴン(0 0、100%0、100%100%、0 100%);
  遷移:すべて.3S線形。
  幅:100%;高さ:100%;
}
ログイン後にコピー

基本的にコア設計とコードを完了しました。チェックボックスがチェックされていない場合(「×」マークをクリックして)、ヘッドセット画像の変換が自動的に元に戻され、中央の位置に戻されます。

少しjavascript

既に欲しいものがある場合でも、ユーザーエクスペリエンスを改善するためのもう1つのことがあります。 #page要素]をクリック(またはクリック)するときにメニューを閉じます。このようにして、ユーザーは「×」タグを調べたり、使用したりせずにコンテンツを返すことができます。

これはメニューを非表示にするもう1つの方法であるため、JavaScriptを使用できます。何らかの理由でJavaScriptが無効になっている場合はどうなりますか?それは問題ではありません。これは、メニューがそれなしで機能することを妨げない単なる強化です。

 document.queryselector( "#page")。addeventlistener( 'click'、(e、checkbox = document.queryselector( 'input'))=> {
  if(checkbox.checked){checkbox.checked = false; e.StopPropagation(); }
});
ログイン後にコピー

これらの3行のコードの目的は、 #page要素にクリックイベントハンドラーを追加することです。チェックボックスが次のような場合は、 :checked状態にある場合、チェックボックスを外してメニューを閉じます。

垂直/垂直のデザイン用に作られたデモを見てきましたが、使用しているものに応じて大画面サイズでも機能します。

これは1つの方法であるか、典型的なスライドアウトメニューを試してみてください。アニメーションは多くの可能性を開き、他にも数十のアイデアがあるかもしれません。実際、私はそれらを聞いてみたいと思っています(またはもっと見る)ので、共有してください!

以上がメニューがページで明らかになります。アニメーションを回転させますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

ペーパーフォーム ペーパーフォーム Apr 16, 2025 am 11:24 AM

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター 毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター Apr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

独自の非JavaScriptベースの分析をホストするためのオプション 独自の非JavaScriptベースの分析をホストするためのオプション Apr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

See all articles