表單元素提示框組件form-tooltip(一)

在使用form表單元素時,比如input元素可能會有這樣的需求,當在input輸入框輸入無效的文本時,你可能需要在input上方或者下方出現一個懸浮提示框來提示用戶,或者當input輸入框爲空且失去焦點時,你需要有一個提示框來提醒用戶。面對這樣的需求你可能一時找不到合適的組件來達到目的,只能自己去實現,比較麻煩。本文介紹一個組件: form-tooltip,就是解決這個問題,用戶可以根據自己的需求自己設置不同樣式的懸浮提示框。效果圖如下:

git代碼庫:https://github.com/yog-zhang/form-tooltip.git

1.安裝引入

(1)下載node包

npm install form-tooltip --save

在需要使用的代碼中導入該插件

import FormTooltip from './form-tooltip.js'

(2)或從github上下載代碼全局引入

<script src='./form-tooltip.js'></script>

2. 使用

(1)創建提示框組件對象

let formTooltip = new FormTooltip(id, options, cssTextObj)

參數說明:

id: 必選項,綁定的input輸入框的id選擇器名稱,如下面的'input'

options: 必選項,是一個對象,用於配置提示框的一些選項,每一個選項除了value都非必選,都有一個默認值。value字段是必填項。詳情如下:

    {

        value: '輸入文本無效',       //提示框文本,必填項

        mode: 1,                    //模式,支持兩種模式,可選值爲0、1,0代表提示框有邊框而沒有背景色,1代表提示框有背景色而沒有邊框

        trianglePosition: '10%',    //設置提示小三角在提示框上的水平位置,位置時從右往左開始

        triangleHeight: '8px',      //設置提示小三角垂直高度

        triangleSize: '1px',        //設置提示小三角邊框寬度

        direction: 'bottom',        //設置提示框在表單元素的上下位置,可選值'top'、'bottom','top'表示提示框在表單元素上方

        borderColor: 'blue'         //設置提示框邊框顏色(包括文本框和小三角邊框),只對mode=0有效 

    }

cssTextObj: 是一個json對象,設置提示框的類樣式,反映在HTML中就是下面的類'form-tooltip-0',

其中類名後面的'0'表示該提示框實例化的序號,即是第幾個實例化的提示框。該參數爲非必選項,不傳此參數會有默認值替代

例子如下:

let formTooltip = new FormTooltip('input', 
    {
        value: '輸入文本無效!', 
        mode: 1, 
        trianglePosition: '10%',
        triangleHeight: '8px',
        triangleSize: '1px',
        direction: 'bottom',
        // 只對mode=0時有效
        borderColor: '#888'
    }, 
    {
        'width': '100px',
        'height': '30px',
        'line-height': '30px',
        'text-align': 'center',
        'border': '1px solid black',
        'background-color': '#888',
        'font-size': '12px',
        'position': 'absolute',
        'left': '20px',
        'top': '31px',
        'border-radius': '4px 4px'
        
    })

渲染HTML如下:

        <input type="text" id="input"> //表單元素要自己寫,不是組件渲染出來的
        <div class="form-tooltip-common form-tooltip-0">
            <span class="form-tooltip-text">輸入文本無效!</span>
            <div class="form-tooltip-triangle-0">
                ::before
            </div>
        </div>

備註:可以看到提示框div元素有兩個類選擇器,第一個類選擇器名字是固定的,所有的下拉框實例共同的類選擇器都是'form-tooltip-common',所以可以通過這個類選擇器對所有的下拉框設置共同的樣式。第二個類選擇器是根據該下拉框是第幾個被創建的實例,如'form-tooltip-0'則表示是第一個被創建的下拉框實例,所以後面是索引'0',前面部分的名字是固定的;

渲染效果如下:

(2)設置提示框文本值

formTooltip.setValue(text)

如:formTooltip.setValue('輸入的文本無效')

(3)設置提示框顯示隱藏

formTooltip.setShow(showFlag)

參數說明:

showFlag: Boolean類型的值,爲true表示顯示提示框,爲false表示隱藏提示框。如:formTooltip.setShow(true)

(4)獲取提示框顯示隱藏標誌

formTooltip.isShow()

返回值是一個Boolean值,爲true表示提示框處於顯示狀態,爲false表示提示框處於隱藏狀態

(5)獲取提示框的一些配置選項

formTooltip.getOptions()

返回值是一個對象,如下:

    {
        id: 綁定的form表單id選擇器
        options: 創建提示框對象時,傳入的options參數,即構造函數的第二個參數
        cssTextObj: 創建提示框對象時,傳入的cssTextObj參數,即構造函數的第三個參數
        showFlag: 提示框的顯示隱藏狀態標誌
        formNode: 綁定的表單元素節點
        tooltipNode: 實例化的提示框元素節點
    }

下一節會貼出來使用demo,也可以在GitHub上直接查看demo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章