ネイティブ JS カプセル化 vue タブ切り替え効果

ネイティブ JS カプセル化 vue タブ切り替え効果

この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

まずは効果画像をご覧ください

使用される技術

vue.js、css3 の最新バージョンをダウンロード

Vueコンポーネントは直接使用できる

<テンプレート>
  <div class="bookcircle-header">
    <ul class="wrapper" :class="headerActive == 0 ? 'friend' : 'booklist'">
      <li @click="headerChange(0)" :class="headerActive == 0 ? 'active' : ''">
        ブックフレンズ</li>
      <li @click="headerChange(1)" :class="headerActive == 1 ? 'active' : ''">
        書籍リスト</li>
    </ul>
  </div>
</テンプレート>

<スクリプト>
エクスポートデフォルト{
  コンポーネント: {},
  データ() {
    戻る {
      ヘッダーアクティブ: 0,
    };
  },
  計算: {},
  作成された() {},
  マウント() {
    //送信を初期化します。this.$emit("change", this.headerActive);
  },
  メソッド: {
    ヘッダー変更(インデックス) {
      this.headerActive = インデックス;
      this.$emit("change", インデックス);
    },
  },
};
</スクリプト>

<style lang="less" スコープ>
.bookcircle-header {
  高さ: 42px;
  ディスプレイ: フレックス;
  コンテンツの中央揃え: 中央;
  アイテムの位置を中央揃えにします。
  .ラッパー{
    幅: 286ピクセル;
    フォントサイズ: 14px;
    高さ: 29px;
    色: #1489fe;
    境界線: 1px 実線 #1489fe;
    境界線の半径: 14px;
    ディスプレイ: フレックス;
    コンテンツの中央揃え: 中央;
    アイテムの位置を中央揃えにします。
    位置: 相対的;
    box-sizing: border-box; // 境界のオーバーフローを解決し、ボックス内に境界を含める li {
      フレックス: 1;
      高さ: 100%;
      ディスプレイ: フレックス;
      コンテンツの中央揃え: 中央;
      アイテムの位置を中央揃えにします。
      zインデックス: 2;
    }
    。アクティブ {
      色: 白;
    }
    &::前に {
      コンテンツ: "";
      幅: 143ピクセル;
      高さ: 100%;
      背景色: #1489fe;
      位置: 絶対;
      上: 0px;
      左: 0px;
      境界線の半径: 13px 0px 0px 13px;
      zインデックス: 1;
      遷移: すべて 0.3 秒;
    }
    &.firend::before {
      変換: translateX(0);
      境界線の半径: 13px 0px 0px 13px;
    }
    &.booklist::before {
      変換: translateX(100%);
      境界線の半径: 0px 13px 13px 0px;
    }
  }
}
</スタイル>

実施原則:

ul、li、フレキシブル ボックスを使用します。まず、親要素の幅と高さを設定します。次に、フレキシブル ボックスを使用して子要素 li を水平方向に拡張します。子要素 li に flex: 1 を設定すると、子要素は親要素の幅を共有します。

次に、最初の li 要素を絶対配置でカバーする親要素の疑似要素を設定し、z-index 属性を使用して疑似要素と子要素間の階層的な表示関係を制御します。

次に、疑似要素に transition 属性を設定し、transform: translateX(); 属性を使用して要素を水平方向に移動します。

注記:

1. スイッチのクリック イベントは子要素にあり、アクティブ スタイルは子要素に追加されていますが、タブの切り替え効果は子要素ではなく、親要素の疑似要素を通じて実現されます。
2. 子要素のインデックスに基づいて親要素の動的クラスを設定する必要があります。これにより、親要素の疑似要素は、選択された子要素に基づいて切り替えアニメーションを実行できます。
3. このコンポーネントは、Taobao amfe-flexible および postcss 適応を使用します。使用時には適応の問題に注意してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript axiosのインストールとパッケージ化のケースの詳細な説明
  • 相同性とクロスドメイン、jsonp(関数カプセル化)、CORS原則の詳細な分析
  • Vue.jsは背景テーブルコンポーネントのカプセル化を管理します
  • JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ
  • ネイティブ js カプセル化シームレスカルーセル機能
  • jsはjQueryをカプセル化する簡単な方法とチェーン操作の詳細な説明を実装します
  • js は、Element の入力コンポーネントのいくつかの機能を実装し、それをコンポーネントにカプセル化します (サンプルコード)
  • JavaScript はプロトタイプのカプセル化カルーセルを実装します
  • JavaScriptスローモーションアニメーション機能のカプセル化方法
  • JavaScript キャンバスカプセル化動的クロック
  • Jackson の JSON ツールクラスのカプセル化について JsonUtils の使用
  • 単一リンクリストの JavaScript カプセル化のサンプルコード
  • 一般的なフロントエンドJavaScriptメソッドのカプセル化

<<:  Ubuntu サーバーで MySQL を設定し、リモート接続を実装する方法

>>:  VMware Workstationはデバイス/資格情報ガードと互換性がありません

推薦する

LinuxでRPMを使用してmysql5.7.17をインストールする

LinuxでのMySQL5.7 rpmのインストール方法を参考までに記録します。具体的な内容は以下の...

HTML減量 HTMLタグを合理化してWebページを作成する

HTML4 についてHTML (XHTML ではありません)、MIME タイプは text/html...

Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)

ステップ1: サードパーティの信頼できるSSL証明書に署名するAlibaba Cloud で直接、無...

CSS3 アニメーション ボールローリング JS コントロールアニメーション一時停止

CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...

Vue の関連ページへのマルチレベルジャンプ (ページドリルダウン) 機能の完全な例

背景プロジェクト開発プロセスでは、前のページから次のページにジャンプする必要に迫られることがよくあり...

すべてのウェブ開発者が知っておくべき61のこと

通常、全員のスピーチを最初から最後まで読む必要があります。ただし、Stack Overflow には...

CSS を使用して ul と li の水平配置を実現する 2 つの方法

li はブロックレベル要素であり、デフォルトで 1 行を占めるため、水平方向の配置を実現する場合は、...

HTML でのフォームとフォーム送信操作に関する情報のコレクション

ここでは、フォーム要素とフォーム送信に関する知識を紹介します。フォーム要素フォーム要素の DOM イ...

Dockerのデフォルトネットワークセグメントを変更する実装方法の分析

背景同社のサーバーはすべて Alibaba Cloud ECS ホストを購入しています。デフォルトの...

MySQL のマスタースレーブレプリケーションと読み取り書き込み分離の原理と使用法の詳細な説明

この記事では、例を使用して、MySQL マスター/スレーブ レプリケーションと読み取り/書き込み分離...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

Vue vee-validateプラグインの簡単な使い方

目次1. インストール2. インポート3. 検証ルールを定義します(エクスポート用に js ファイル...

Gokudōゲームにおけるフロントエンド知識のまとめ

背景日本語を学び始めた当初は、日本語の50音を覚えるのは簡単ではなく、特にカタカナを覚えるのは困難で...

4つのReactコンポーネントにおけるDOMスタイル設定の詳細な説明

1. インラインスタイル仮想DOMにインラインスタイルを追加するには、式を使用してスタイルオブジェク...

Vue は PDF.js を統合して PDF プレビューを実装し、透かしを追加する手順を実行します。

目次成果を達成する利用可能なプラグインの紹介ニーズに応じてプラグインを選択するプラグインのインストー...