この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介します。具体的な内容は以下のとおりです。 効果: シンプルな小さなエフェクトです。フィルタリング条件が多数ある場合、デフォルトではいくつかの項目のみが表示されるため、冗長に感じません。必要に応じて、クリックして展開し、より多くの条件をフィルタリングできます。また、インターフェースのサイズを自動的に決定し、さらにフィルタリング項目が必要かどうかを判断することもできます。 「クエリとリセット」はコンポーネントに直接組み込まれているため、コンポーネント スタイルの実装が容易になり、スロットにも使用できます。 通常の大画面 解像度が低い 他にもフィルタリングボタンがあるのがわかります。ドロップダウンをクリックすると スロット コード: <テンプレート> <div :class="['colla-wrap']" ref="フィルター"> <div class="colla-box" ref="filterCont" :style="maxWidth ? 'max-width:' + maxWidth: ''"> <スロット></スロット> </div> <div class="ctrl"> <div class="deal-b" > <el-button size="mini" type="primary" icon="el-icon-search" @click="clickSearch">検索</el-button> <el-button size="mini" plain icon="el-icon-refresh-left" @click="clickReset">リセット</el-button> <スロット名="moreBtns"></スロット> <div class="deal-b" @click="showCollapse" v-if="autoExpend.more"> <i class="el-icon-arrow-down turnDown" v-if="!autoExpend.collapseVisible"></i> <i class="el-icon-arrow-up turnUp" v-if="autoExpend.collapseVisible"></i> <div v-if="!autoExpend.collapseVisible" class="more-words">その他のフィルター項目</div> <div v-if="autoExpend.collapseVisible" class="more-words">フィルターを折りたたむ</div> </div> </div> </div> </div> </テンプレート> <スクリプト> エクスポート デフォルト={ データ(){ 戻る { 折りたたみデータ:{ 折りたたみ表示:false }, // より多くのフィルター項目を表示するために自動的に折りたたむ autoExpend:{ 詳細:false、 折りたたみ表示:false、 hasTop:false、 フィルター:false }, } }, プロパティ:['maxWidth'], マウントされた(){ this.watchScrollHeight() window.addEventListener("サイズ変更", () => { this.watchScrollHeight() }); }, 方法:{ クリックサーチ(){ this.$emit('clickSearch') }, クリックリセット(){ this.$emit('clickReset') }, 表示折りたたみ(){ this.methods('showCollapse') }, 表示折りたたみ(){ this.autoExpend.collapseVisible = !this.autoExpend.collapseVisible this.$refs.filterCont.style.height = this.autoExpend.collapseVisible?'auto':'50px' } //この高さを監視してみるwatchScrollHeight(){ filter = this.$refs.filter; とします。 if(フィルター){ this.$nextTick(() => { this.autoExpend.more = $(filter).find(".colla-box")[0].scrollHeight > 50; }) } // このスロットが表示されるかどうかを決定するために、下に要素ノードがあるかどうかを判断します // 通常の検索ボックスの位置スロットを判断します if (this.$refs.filterCont&&this.$refs.filterCont.childNodes.length) { this.autoExpend.hasFilter = true } } } } </スクリプト> <スタイル スコープ lang="scss"> .colla-wrap{ 幅: 100%; .colla-box{ 最大幅: calc(100% - 400px); フロート: 左; ボックスのサイズ: 境界線ボックス; オーバーフロー: 非表示; 高さ: 50px; >div、ボタン{ フロート: 左; 右マージン: 20px; 下マージン: 20px; } } .ctrl{ ディスプレイ: フレックス; align-items:flex-start; コンテンツの配置: flex-start; 色: #409EFF; ボタン{ 右マージン: 20px; } .deal-b{ ディスプレイ: フレックス; align-items:flex-start; flex-wrap: nowrap; .deal-b{ 右マージン: 0; 下マージン: 0; 上マージン: 5px; ディスプレイ: フレックス; アイテムの位置を中央揃えにします。 カーソル: ポインタ; 色: #409EFF; .more-words{ 最小幅: 75px; } 私{ 色: #409EFF; 右マージン: 5px; } } } } } </スタイル> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 上級学習ノート (パート 3): MySQL 論理アーキテクチャの紹介、MySQL ストレージ エンジンの詳細な説明
>>: Zabbix redis 自動ポート検出スクリプトは json 形式を返します
理論的には、MySQL によって使用されるメモリ = グローバル共有メモリ + max_connec...
HTML でよく使用されるエスケープ文字をまとめると次のようになります。 改行...
序文:年末です。データベースを検査する時期ではないでしょうか?一般的に、検査では、パスワードの複雑さ...
現象:イメージを実行します (例: ubuntu14.04)。 docker run -it --r...
序文最近、MySQL 5.7 をインストールしましたが、問題が見つかりました。コマンド ライン ウィ...
私は長い間落ち込んでいます、なぜでしょうか?以前、お客様から、提供されたソフトウェアが正常に動作しな...
1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...
1. Object.create() メソッドを使用して新しいオブジェクトを作成し、既存のオブジェク...
序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...
少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみま...
注意: この方法は、Webkit ベースのブラウザにのみ適用されます。ブラウザのスクロールバーが広す...
改訂版のプレビューこの記事は 3 日前に書かれたものです。先輩の同僚から改訂の提案をいくつかいただき...
目次1. Nginx の紹介1. Nginx とは何ですか? 2. Nginx を使用する理由3. ...
1. 環境と準備1. Ubuntu 14.04 2.Docker環境2. 建設プロセス1. ミラーソ...
この記事では、フォームの隠しテキストを表示するためのJavaScriptの具体的なコードを参考までに...