Vueはスクロールバースタイルを実装します

Vueはスクロールバースタイルを実装します

ここに画像の説明を挿入

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみると、ブラウザのスクロールバーでは幅と位置を変更できないことがわかりました。自分で書くしかありませんでした。まず、スクロールバーのスタイル

<div class="scrollBar" v-if="roleList.length > 5">
        <div
          クラス="ボックス"
          @mousedown="移動"
          v-bind:style="{ 幅: アクティブ幅 + 'px' }"
        </div>
      </div>

スタイル

.スクロールバー{
  幅: 500ピクセル;
  高さ: 6px;
  背景: #d5dbf5;
  マージン: 0 自動;
  上マージン: 72px;
  境界線の半径: 4px;
  位置: 相対的;

  。箱 {
    幅: 30ピクセル;
    高さ: 100%;
    背景: #fff;
    境界線の半径: 4px;
    位置: 絶対;
    左: 0;
  }
  .box:hover {
    カーソル: ポインタ;
  }
}

スクロールエリアのスタイルはここには書かれていません

1 まずスクロールバースライダーの幅です

マウント() {
    //スクロール領域の幅 ここではユーザー リストをトラバースしているので、リストの長さを取得します * 各 li の幅が合計幅です let bgWidth = this.$refs.liList.clientWidth * this.roleList.length;
    // 表示領域の幅 1065 これは、上の画像の白い背景ボックスの幅です // スライダーの幅 500 は、スクロール バーの幅です この幅は、スライダーがスライドできる距離を取得するために計算されます。これについては、後で説明します this.activewidth = 500 * (1065 / bgWidth);
  },

2 スライダーにマウスイベントを追加する

移動する{
      // ターゲット要素を取得します。let odiv = e.target;
      //スクロール領域
      //要素に対するマウスの位置を計算します。let disX = e.clientX - odiv.offsetLeft;
      // スクロールバーがスクロールできる距離 let viewArea = 500 - this.activewidth;
      //スクロール領域の幅 let bgWidth = this.$refs.liList.clientWidth * this.roleList.length;
      ドキュメント.onmousemove = (e) => {
        // マウスが押されて移動されたイベント // 要素に対するマウスの位置をマウスの位置から減算して、要素の位置を取得します。let left = e.clientX - disX;
        //left < 0 はスライダーが左端に到達したことを意味します //または left > viewArea はスライダーが右端に到達したことを意味しますif (left < 0 || left > viewArea) {
          //console.log("終了しました");
          // このとき、イベントをクリアする必要があります。そうしないと、スライダーがスクロール バー領域から外れてしまいます。 document.onmousemove = null;
        } それ以外 {
         //スライダーのスライド距離 odiv.style.left = left + "px";
          //スクロール領域のスライド距離 = スクロール領域の幅 * (スライダーのスライド距離 / 500)
          this.$refs.ScrollArea.style.left =
            "-" + bgWidth * 左 / 500 + "px";
        }
      };
      ドキュメント.onmouseup = (e) => {
        ドキュメント.onmousemove = null;
        ドキュメント.onmouseup = null;
      };
    },

これで、Vue でスクロール バー スタイルを実装する方法に関するこの記事は終了です。Vue でスクロール バーを実装する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueは2つのエリアスクロールバーの同期スクロールを実装します
  • Vue.js デスクトップ カスタム スクロール バー コンポーネント 美化 スクロール バー VScroll
  • Vueはスクロールバーを記憶し、ドロップダウンの読み込みを実装するのに最適な方法です
  • Vueでスクロールバーのスタイルを変更する方法
  • Vue はデータのレンダリング後にスクロールバーの位置制御を実装します (推奨)
  • Vue スクロールバープラグインの実装コード
  • Vueフレームワークでカスタムスクロールバー(easyscroll)を実装する方法
  • Vue でスクロールバーのスタイルを変更する方法

<<:  Centos7 Zabbix3.4 メールアラーム設定(メール内容がxx.bin添付ファイルになる問題の解決)

>>:  システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

推薦する

データベースマルチテーブル接続クエリの実装方法の詳細説明

データベースマルチテーブル接続クエリの実装方法の詳細説明結合演算子を使用して複数のテーブルクエリを実...

Unicodeの一般的な記号

Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...

Dockerfileを使用して独自のイメージを作成する方法

1. 空のディレクトリを作成する $ cd /home/xm6f/dev $ mkdir myapp...

MySQLのさまざまなロックに関する詳細な理解

目次ロックの概要ロックの分類データベース操作の粒度データ操作の種類MySQL ロックさまざまなストレ...

Ubuntu システムログで /var/log/messages を設定する方法

1. 問題の説明今日、システム ログ ファイルを確認する必要がありますが、/var/log/mess...

シンプルなCSSアニメーションのtransition属性の詳しい説明

1. 遷移属性の理解1. transition 属性は、次の 4 つの遷移プロパティを設定するために...

MySQL 8.0.11 Mac 用インストール ガイド

MACはmysql8.0をインストールします。具体的な内容は次のとおりです。 1. ダウンロードアド...

MySQL 8.0.11 Community Green Edition の Windows 用インストール手順図

このチュートリアルでは、インストールに最新の MySQL コミュニティ グリーン バージョンである ...

ウェブページの再設計の7つの主要要素 ウェブページの再設計の7つの主要要素を共有する

Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...

jsはシンプルな計算機を実装します

参考までに、ネイティブjsを使用して簡単な計算機(詳細なコメント付き)を実装します。具体的な内容は次...

Vue3 AST パーサー - ソースコード分析

目次1. AST抽象構文木を生成する2. ASTのルートノードを作成する3. 子ノードの解析4. テ...

Ubuntuのバックアップ方法(4種類)のまとめ

方法1:リスピンを使用するには、次の手順に従ってください。 sudo add-apt-reposit...

CSS3 のディスプレイのグリッドレイアウトとフレックスレイアウトの詳細な説明

Gird レイアウトは Flex レイアウトといくつかの類似点があり、どちらもコンテナーの内部項目を...

iOS WeChat H5ページのゴム反発効果の落とし穴記録

ビジネス要件最近開発したプロジェクトの一つに、WeChat公式アカウントに関連したH5ページがありま...

MySQL 8.0.22 zip圧縮パッケージ版(無料インストール)のダウンロード、インストール、および構成手順の詳細

目次最初のステップはMySQLをダウンロードすることですステップ2: ダウンロードした圧縮パッケージ...