最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみると、ブラウザのスクロールバーでは幅と位置を変更できないことがわかりました。自分で書くしかありませんでした。まず、スクロールバーのスタイル <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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Centos7 Zabbix3.4 メールアラーム設定(メール内容がxx.bin添付ファイルになる問題の解決)
>>: システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません
目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...
目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...
目次ビジネスロジックデータテーブル構造クエリロジックSQL スクリプトスクリプトの説明ビジネスロジッ...
データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントし...
1. 何ですかCSS アニメーションは、CSS を使用して拡張マークアップ言語 (XML) 要素をア...
Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...
リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...
1. クラスター化インデックステーブル データはインデックスの順序で保存されます。つまり、インデック...
runlike を使用してコンテナの docker run 起動パラメータを表示します。 pipを...
目次1. WAFの背景2. WAFとは3. 動作原理4. WAF機能5. WAFと従来のファイアウォ...
1. 公式サイトからmysql-8.0.17-winx64をダウンロードし、Zipファイル形式を選択...
execute、executeUpdate、executeQuery の違い (およびそれらの戻り値...
会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...
a タグ疑似クラスの役割: 「:link」: 訪問されていないタグの状態。 「:visited」: ...
目次範囲グローバルスコープ関数のスコープもし、スイッチ、のために、その間ブロックスコープスコープチェ...