原因あまりにも多くのコンテンツに起因したiView複数の選択肢改行を解決するために、ドロップダウンボックスを選択します

あまりにも多くのコンテンツは、ドロップダウンボックスのiViewラップにつながることができたときにiViewのドロップダウンボックスを使用し、それは以下に示すように、真剣に、ユーザーエクスペリエンスに影響を与えた、が見つかりました:

 

 

 APIの公式ウェブサイトをiViewを見ることによって、良い解決策を見つけられませんでした、入力ボックス内のタブの数は最大タグカウントプロパティは、そこにある公式ウェブサイトは、プロパティの値を超えると、タブの後ろに隠れます。

 理想的な実用的な効果:

 

理想的にはいっぱいある、現実には不確実である、結果は次のようになりますため、タブの内容の長さに、非常に細いです。

 

絶望では、自分だけを変更します。

プログラム:必須KEEPライン、包装スタイルの変更を防止することが(シンプル、粗方法)

実際の結果:

 

その結果、実際に新しいラインの問題を解決しますが、戻って直接(良い、過酷な!!)を再生し、結果を確認するために上司にかかった、致命的な欠陥があるため、ドラッグの周り方法はありません、あなたが見ることができますわずか数入力ボックス、他の人が隠されています。

実際にコードの行を追加するためにCSSを:(れるプログラムコード)

<!DOCTYPE HTML > 
< HTML > 
< ヘッド> 
    < メタのcharset = "UTF-8" > 
    < タイトル>のiView例</ タイトル> 
    < リンクのrel = "スタイルシート" タイプ= "テキスト/ cssの" のhref = "のhttp:// unpkg .COM / iViewにはdist / /スタイル/ iview.css」> 
    < スクリプトタイプ= "テキスト/ javascriptの" SRC = "http://vuejs.org/js/vue.min.js" > </ スクリプト> 
    <= "http://unpkg.com/iview/dist/iview.min.js" > </ スクリプト> 
    < スタイル> 
        .ivu選択-複数.ivu選択選択DIV { オーバーフロー隠されましたホワイトスペースNOWRAP } 
    </ スタイル> 
</ ヘッド> 
< ボディ> 
< DIV ID = "アプリケーション" スタイル= "マージン左:300ピクセル;マージントップ:300ピクセル;" > 
    < テンプレート> 
        < I-選択Vモデル= "model10"> 
            < I-オプションV-ため= "cityListの項目" :値= "item.value" キー= "item.value" > {{item.label}} </ I-オプション> 
        </ I-選択> 
    </ テンプレート> 
</ divの> 
< スクリプト> 
    新しいヴュー({ 
        エル:' #app ' 
        データ:{ 
            cityList:[ 
                    { 
                        値:' ニューヨーク' 
                        ラベル:' ニューヨーク' 
                    }、
                    { 
                        値:' ロンドン' 
                        ラベル:' ロンドン' 
                    }、
                    { 
                        値:' シドニー' 
                        ラベル:' シドニー' 
                    }、
                    { 
                        値:' オタワ' 
                        ラベル:"オタワ"
                    }、
                    { 
                        値:' パリ' 
                        ラベル:' パリ' 
                    }、
                    { 
                        値:' キャンベラ' 
                        ラベル:' キャンベラ' 
                    } 
            ]、
            model10:[] 
        }、
        メソッド:{ 

        } 
    })
  </ スクリプト> 
</ ボディ> 
</HTML >

オプション2:選択された下位コロラド(より複雑なスキーム)を達成するために、独自のタブのiViewの実践を放棄します

実際の結果:

ボックス内のコンテンツが周りドラッグすることができます。原理は、iViewが隠され、関連するすべてのタグが付属しており、それがドラッグ特性を中心に自由にすることができ、その後の内側に自分の体には、コンテンツを使用して、タグ入力入力ボックスを追加します。

オプションIIコード:(コードは、私が主に比較的悪いで書かれたバックエンド、フロントエンドのコードを実行し、直接実行することができます....)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>iview example</title>
    <link rel="stylesheet" type="text/css" href="http://unpkg.com/iview/dist/styles/iview.css">
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://vuejs.org/js/vue.min.js"></script>
    <script type="text/javascript" src="http://unpkg.com/iview/dist/iview.min.js"></script>
    <style>
        /*隐藏掉iview的标签*/
        .ivu-select-multiple .ivu-select-selection div {overflow: hidden;white-space: nowrap;height: 32px;}
        .ivu-select-multiple .ivu-select-selection .ivu-tag-checked{display: none;}
        .ivu-select-multiple .ivu-select-selection .ivu-select-placeholder{display: none;}
    </style>
</head>
<body>
<div id="app" style="margin-left: 300px;margin-top: 300px;">
    <template>
        <i-select v-model="model10" multiple style="width:260px" @on-change="chg" transfer-class-name="mytest">
            <i-option v-for="item in cityList" :value="item.value" :key="item.value">{{ item.label }}</i-option>
        </i-select>
    </template>
</div>
<script>
window.vm =new Vue({
        el: '#app',
        data: {
            cityList: [
                    {
                        value: 'New YorkVal',
                        label: '纽约'
                    },
                    {
                        value: 'LondonVal',
                        label: '伦敦'
                    },
                    {
                        value: 'SydneyVal',
                        label: '悉尼'
                    },
                    {
                        value: 'OttawaVal',
                        label: '渥太华'
                    },
                    {
                        value: 'ParisVal',
                        label: '巴黎'
                    },
                    {
                        value: 'CanberraVal',
                        label: '堪培拉'
                    }
            ],
            model10: []
        },
        methods: {
            chg : function(){
                this.$nextTick(function(){
                    /*从被隐藏掉的Iview标签中,把需要显示的内容取出来,放到自定义的输入框中*/
                    var text="";
                    /*.mytest是我设置的弹出层的class名称transfer-class-name="mytest"*/
                    /*通过实际的弹出层名称,通过jquery来一层一层地找到需要显示的内容*/
                    var div = $(".mytest").prev().children('div'); 
                    $(div).find(".ivu-tag-text").each(function(){
                        text += $(this).html()+"";
                    })
                    text = text.substring(0,text.length-1);
                    $(div).children('input').val(text);
                })
            }
        }
    })

/*页面加载的时候,自定义一个Input输入框,用来替换Iview进行显示*/
$(".ivu-select-multiple .ivu-select-selection>div").each(function () {
    /*设置输入框的宽和高*/
    var width = $(this).width()-10;
    var height = $(this).height();
    /*获取默认显示的内容*/
    var phr = $(this).find('span').text();
    if(phr !== null || phr !== undefined || phr !== ''){
        phr = "请选择";
    }
    /*将自定义的输入框放到iview标签体中*/
    $(this).prepend("<input style='border:0px;box-shadow:none;width: "+width+"px;height: "+height+"px' readonly placeholder='"+phr+"' />");
})

  </script>
</body>
</html>

 

おすすめ

転載: www.cnblogs.com/mayiaction/p/11534764.html