参考までに、Vue3でナビゲーションバーコンポーネントをカプセル化し、スクロールバーのスクロールに合わせて天井効果を実現します。 ナビゲーション バー コンポーネントの効果図: スクロールバーをスクロールした後の天井効果の模式図: 特定のコード表示: <テンプレート> <ヘッダークラス="アプリヘッダー"> <div class="コンテナ"> <!-- ヘッダーナビゲーション領域 --> <ヘッダーナビゲーション共通 /> <div class="検索"> <i class="iconfont icon-search"></i> <input type="text" placeholder="検索" /> </div> <div class="カート"> <a href="#" class="curr"> <i class="iconfont icon-cart"></i> 2 </a> </div> </div> </ヘッダー> </テンプレート> <スクリプト> '@/components/header-nav-common.vue' から HeaderNavCommon をインポートします。 エクスポートデフォルト{ 名前: 'AppHeader', コンポーネント: ヘッダーナビゲーション共通 } } </スクリプト> <style スコープ lang="less"> .app-header { 背景: #fff; 。容器 { ディスプレイ: フレックス; アイテムの位置を中央揃えにします。 } .navs{ 幅: 820ピクセル; ディスプレイ: フレックス; コンテンツの両端揃え: スペースを空ける; 左パディング: 40px; li { 右マージン: 40px; 幅: 38px; テキスト配置: 中央; { 表示: インラインブロック; フォントサイズ: 16px; 行の高さ: 32px; 高さ: 32px; } &:ホバー{ { 色: @xtxColor; 下部境界線: 1px 実線 @xtxColor; } } } } 。検索 { 幅: 170ピクセル; 高さ: 32px; 位置: 相対的; 下境界線: 1px 実線 #e7e7e7; 行の高さ: 32px; .アイコン検索{ フォントサイズ: 18px; 左マージン: 5px; } 入力{ 幅: 140ピクセル; 左パディング: 5px; 色: #666; } } .カート{ 幅: 50px; .curr { 高さ: 32px; 行の高さ: 32px; テキスト配置: 中央; 位置: 相対的; 表示: ブロック; .icon-cart { フォントサイズ: 22px; } えむ { フォントスタイル: 通常; 位置: 絶対; 右: 0; 上: 0; パディング: 1px 6px; 行の高さ: 1; 背景: @helpColor; 色: #fff; フォントサイズ: 12px; 境界線の半径: 10px; フォントファミリ: Arial; } } } } </スタイル> 中央のメニュー部門は、2つのコンポーネント(HeaderNavCommonコンポーネント)の再利用を実現するために、別のコンポーネントにカプセル化されています。 <テンプレート> <ul class="app-header-nav"> <li class="home"><RouterLink to="/">ホーム</RouterLink></li> <li><a href="#" >おいしい食べ物</a></li> <li><a href="#" >キッチン</a></li> <li><a href="#" >アート</a></li> <li><a href="#" >電化製品</a></li> <li><a href="#" >ホーム</a></li> <li><a href="#" >ケア</a></li> <li><a href="#" >妊娠と乳児</a></li> <li><a href="#" >衣類</a></li> <li><a href="#" >食料品</a></li> </ul> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'AppHeaderNav' } </スクリプト> <スタイル スコープ lang='less'> .app-header-nav { 幅: 820ピクセル; ディスプレイ: フレックス; 左パディング: 40px; 位置: 相対的; zインデックス: 998; li { 右マージン: 40px; 幅: 38px; テキスト配置: 中央; { フォントサイズ: 16px; 行の高さ: 32px; 高さ: 32px; 表示: インラインブロック; } &:ホバー{ { 色: @xtxColor; 下部境界線: 1px 実線 @xtxColor; } } } } </スタイル> 天井効果をカプセル化するコンポーネント <テンプレート> <div class="app-header-sticky" :class="{ show: top >= 78 }"> <div class="コンテナ" v-if="トップ >= 78"> <!-- 中間 --> <ヘッダーナビゲーション共通 /> <!-- 右ボタン --> <div class="right"> <RouterLink to="/">ブランド</RouterLink> <RouterLink to="/">トピック</RouterLink> </div> </div> </div> </テンプレート> <スクリプト> '@/components/header-nav-common.vue' から HeaderNavCommon をインポートします。 // 'vue' から { ref } をインポートします '@vueuse/core' から { useWindowScroll } をインポートします。 エクスポートデフォルト{ 名前: 'AppHeaderSticky', コンポーネント: { HeaderNavCommon }, 設定() { // ページスクロール距離 // const top = ref(0) // window.onscroll = () => { // top.value = document.documentElement.scrollTop // } // サードパーティのパッケージを使用したページスクロール const { y: top } = useWindowScroll() 戻る {トップ} } } </スクリプト> <style スコープ lang="less"> .app-header-sticky { 幅: 100%; 高さ: 80px; 位置: 固定; 左: 0; 上: 0; zインデックス: 999; 背景色: #fff; 下境界線: 1px 実線 #e4e4e4; // これがキースタイルです!!! // デフォルトでは、完全に上に移動します。transform: translateY(-100%); // 完全に透明 opacity: 0; //表示されるクラス名&.show { 遷移: すべて 0.3 秒線形。 変換: なし; 不透明度: 1; } 。容器 { ディスプレイ: フレックス; アイテムの位置を中央揃えにします。 } 。右 { 幅: 220ピクセル; ディスプレイ: フレックス; テキスト配置: 中央; 左パディング: 40px; 左境界線: 2px 実線 @xtxColor; { 幅: 38px; 右マージン: 40px; フォントサイズ: 16px; 行の高さ: 1; &:ホバー{ 色: @xtxColor; } } } } </スタイル> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Dockerコンテナの個別展開のためのLNMPの実装
>>: MySQL ルートパスワードエラー番号 1045 の解決方法
目次1. Dockerをインストールする2. influxDBをインストールして設定する3. Gra...
背景最近、面接でデータベース トランザクションについてよく質問されます。通常は、@Transacti...
いろいろ苦労しましたが、やっと yum インストールの手順がわかりました。以前、バイナリ パッケージ...
Anaconda は、conda、Python、およびそれらの依存関係など、180 を超える科学パッ...
この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...
HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...
目次導入1. Tomcatを起動するコード2. Tomcatフレームワーク3. コンテナを作成する ...
1. インデックスはnull値を保存しないより正確に言うと、単一列インデックスには null 値は格...
通常、クリック イベントは、メッセージ リマインダーのさまざまな状況に分割されます。これらが処理され...
参考までに、Javascript を使用して広告を閉じる方法に関するケース スタディを示します。詳細...
目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...
Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...
目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....
もちろん、ページ パフォーマンスの最適化に関する個人的な経験も含まれています。ここでいくつかの点につ...
1. 何ですかreactアプリケーションでは、イベント名はキャメルケース形式で記述されます。たとえ...