bootstrap-slider插件使用方法


bootstrap-slider例子地址:https://seiyria.com/bootstrap-slider/

bootstrap-slider github地址:https://github.com/seiyria/bootstrap-slider

這個插件的使用方法並不難,我們可以在它的例子頁面看到很多種情況的使用方法,都給了相應的代碼。我就簡述一下在使用過程中遇到的一些坑及解決辦法。

我們需要實現的功能如下圖所示:

 

簡而言之就是,選擇之后實時將你選中的數據返回到文本框里面。

 

解決思路:

1.點擊文本框 顯示 浮層(這里有個坑,我后面會講到);

2.實例化 拖動 插件;

3.將 選中的值 實時返回到文本框(這里也有個坑)。

 

解決方案:

解決問題1——點擊文本框 顯示 浮層

因為項目是基於bootstrap,所以我直接用的是 bootstrap 的下拉菜單插件,具體代碼如下:

<div class="form-group btn-group">
   <div class="input-icon right dropdown-toggle " data-toggle="dropdown">
       <i class="fa fa-angle-down font-blue"></i>
       <input type="text" class="form-control input-small" placeholder="請選擇年齡段" id="ageValue">
   </div>
    <div class="dropdown-menu dropdown-content" role="menu">
            <input id="ageSlider" type="text" data-stopPropagation="true"
                   data-slider-min="0"
                   data-slider-max="50"
                   data-slider-step="0.5"
                   data-slider-value="[2,5]"
                   data-slider-tooltip="hide"/>
    </div>
</div>

其中里面的data-slider-XXX 是針對於bootstrap-slider插件定義的一些屬性,具體可以查看它的github地址,上面都有詳細的說明。如下圖:

 

 解決問題2——實例化 拖動 插件

var ageSlider = $("#ageSlider").bootstrapSlider()

這里要說明一下的就是,如果你不是依賴於bootstrap開發的話,需要寫成下面這個:

//引用了jquery的時候
var
ageSlider = $("#ageSlider").slider({})

//沒有引用jquery的時候
var ageSlider = new Slider('#ageSlider', {});

 

解決問題3——將 選中的值 實時返回到文本框

解決思路就是在值改變的時候,返回一個函數,函數的作用是把值寫入到文本框里面。

我們如何捕獲到它的值改變了呢?我們可以看到插件提供了一個change事件:

 

我們怎么獲取到slider的值呢?插件提供了一個 getValue 的方法:

接下來就好辦了,直接把值寫入到文本框里面就可以了。具體代碼如下:

var ageChange = function() {
    var ageArr = ageSlider.bootstrapSlider('getValue');
    $('#ageValue').val(ageArr[0]+'歲' + '~' + ageArr[1]+'歲');
};
var ageSlider = $("#ageSlider").bootstrapSlider().on('change',ageChange);

 

功能實現基本就到這里了。

 

-------我是天堂與地獄之間的分隔線了-------

 

接下來說下我遇到的坑。。。各位看官有興趣也可以繼續看下去。。畢竟這也是一條充滿血與淚的路哇。能夠讓你少走彎路。

坑一:解決問題一的時候,發現一個問題,就是你在拖動結束之后浮層就會隱藏掉。如下圖:

解決方法就是點擊浮層的時候,阻止它的隱藏事件。代碼如下:

$('.dropdown-menu').click(function(e) {
    e.stopPropagation();
});

.dropdown-menu 是那個浮層:

解決方案來自於:Keep Bootstrap dropdown open on click

 

坑二:解決問題3時,報錯:getValue is not a function。

一開始,我是按照官方的案例getValue()來寫的。如下圖:

我開始是這么寫的,如下圖:

然后就報錯了。。。

后面看它的官方文檔,才知道要按照下圖這么寫:

 

 好了,該交待的都已交待完畢啦~~感覺自己棒棒噠~

最后來份代碼全家福壓壓驚~

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM