この記事では、動的なプログレスバー効果を実現するためのVueの具体的なコードを例として紹介します。具体的な内容は次のとおりです。 デモンストレーション効果:構造進捗状況/index.js const コントローラ = { 初期化: require('./controllers/html'), 速度: require('./controllers/speed') } exports.init = コントローラ.init exports.speed = コントローラ.speed 進捗状況/コントローラ/html/index.js エクスポート.set = () => { dom = document.createElement('div') とします。 dom.setAttribute('id', 'progress_speed') dom.classList.add('progress-box', 'progress-hide') dom.innerHTML = '<div class="progress progress-speed-hide" id="progress_box_speed"><div class="speed" style="width:0%;background: #f2f3f5;transition: 0.2s;"></div></div>' document.getElementById('app').insertBefore(dom、document.getElementById('app').firstChild) の順にクリックします。 スタイル = ` .progress-box{ 幅: 100%; 高さ: 100%; 遷移: 0.4秒; 位置: 固定; 上: 0; 左: 0; 背景: rgba(0,0,0,0.5); zインデックス:4002; } 。進捗 { 境界線の半径: 19px; 背景: #f2f3f5; 幅: 80%; 高さ: 38px; 位置: 固定; 上: calc(50% - 19px); 左: 計算(50% - 40%) zインデックス:2000; 遷移: 0.4秒; 不透明度: 1; } .progress-hide{ 境界線の半径: 19px; 幅: 0%; 高さ: 0%; 上: calc(50% - 0%); 左: 計算(50% - 0%); 遷移: 0.2秒; オーバーフロー: 非表示; } .進行速度非表示{ 幅: 0%; 高さ: 0px; 遷移: 0.6 秒; 不透明度: 0; オーバーフロー: 非表示; } 。スピード { 境界線の半径: 19px; 背景画像: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,透明 25%,透明 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,透明 75%,透明); 背景画像: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,透明 25%,透明 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,透明 75%,透明); 背景画像: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent); 高さ: 38px; -webkit-背景サイズ: 40px 40px; 背景サイズ: 40px 40px 幅: 0%; 遷移: 0.3秒; 背景色:#409EFF; -o-animation: プログレスバーストライプ 2s 線形無限; アニメーション: プログレスバーストライプ 2 秒 線形 無限; } .スピード成功{ 幅: 100%; 背景色: #67c23a; } @-webkit-keyframes プログレスバーのストライプ { から { 背景位置: 40px 0 } に { 背景位置: 0 0 } } @-o-keyframes プログレスバーストライプ { から { 背景位置: 40px 0 } に { 背景位置: 0 0 } } @keyframes プログレスバーのストライプ { から { 背景位置: 40px 0 } に { 背景位置: 0 0 } }` styleElement = document.getElementById('progress') とします。 スタイル要素の場合 styleElement = document.createElement('style') styleElement.type = 'text/css' styleElement.id = '進捗状況' document.getElementsByTagName('head')[0].appendChild(styleElement) styleElement.appendChild(document.createTextNode(スタイル)) } } 進捗/コントローラ/スピード/index.js exports.run = (時間) => { document.getElementById('progress_speed').classList.remove('progress-hide') 時間 = 時間 * 100 dom = document.getElementById('progress_box_speed') とします。 dom.classList.remove('進行速度を非表示') dom.getElementsByClassName('speed')[0].classList.remove('speed-success') タイムアウトを設定する(() => { dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:' + time + '%') }, 10) (時間 >= 100) の場合 { タイムアウトを設定する(() => { dom.getElementsByClassName('speed')[0].classList.add('speed-success') dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:100%') dom.classList.add('進行速度を非表示') タイムアウトを設定する(() => { document.getElementById('progress_speed').classList.add('progress-hide') dom.getElementsByClassName('speed')[0].setAttribute('style', 'width:0%') }, 900) }, 1000) } } 使い方は?main.js にインポートします (独自の新しいファイルのパスに基づきます。これは私の独自のパスです) './common/progress' から進捗状況をインポートします グローバルマウント Vue.prototype.$progress = 進行状況 構造 使用: this.$progress.init.set() this.$progress.speed.run('10.555555') // 進捗バーは10.555555%に達します 進行状況バーが 100 に達すると、自動的に非表示になります。グローバルにマウントして、プログレス バーが必要な場所ならどこでも使用できます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: データベース管理に役立つ 5 つの MySQL GUI ツール
目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...
百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...
外部一時テーブルCREATE TEMPORARY TABLE によって作成された一時テーブルは、外部...
この記事では、参考までに、簡単なコメントエリアを実装するためのjQueryの具体的なコードを紹介しま...
最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...
1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...
この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...
1. 公式MySQL Yumリポジトリをダウンロードしてインストールする 実行ファイル: mysql...
CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...
この例では、Linux への Python 3.8 のインストールを例に挙げます。 1. 依存パッケ...
序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...
新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...
この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...
Angular Cookie の読み取りおよび書き込み操作のコードは次のようになります。 var a...
前の記事では、deepin linux に新しいカーネルを手動でインストールする方法について説明しま...