1. 程式人生 > >progressbar(進度條)、滑塊及switch開關

progressbar(進度條)、滑塊及switch開關

1、有準確值的進度條

有準確值的進度條會顯示當前進度正處於整體進度的佔比位置,使用者可以更直觀的預期完成時間;
使用進度條控制元件,需要一個進度條控制元件容器,mui會自動識別該容器下是否有進度條控制元件,若沒有,則自動建立。
進度條控制元件DOM結構:

<divid="demo1"class="mui-progressbar"><span></span></div>

初始化:

mui(container).progressbar({progress:20}).show();

progressbar初始化邏輯:
檢查當前容器(container控制元件)自身是否包含.mui-progressbar類:
當前容器包含.mui-progressbar類,則以當前容器為目標控制元件,直接顯示進度;
否則,檢查當前容器的直接孩子節點是否包含.mui-progressbar類,若存在,則以遍歷到的第一個含有.mui-progressbar類的孩子節點為目標控制元件,顯示進度;
若當前容器的直接孩子節點,均不含.mui-progressbar類,則自動建立進度條控制元件;
更改顯示進度條:

mui(container).progressbar().setProgress(50);

關閉進度條:

mui(container).progressbar().hide();

備註:關閉進度條一般用於動態建立(DOM中預先未定義)的進度條,呼叫hide方法後,會直接刪掉對應的DOM節點;若已提前建立好DOM節點的進度條,呼叫hide方法無效;

2、滑塊

<divclass="mui-input-row mui-input-range"><label>Range</label><inputtype="range"min="0"max="100"></div>

獲取滑塊數值的樣例程式碼

<divclass="mui-content"><divclass="mui-input-row mui-input-range"><label>Range</label><inputtype="range"min="0"max="100"id="range1"></div><divstyle="padding:20px;"><inputtype="button"class="mui-btn"value="獲取滑塊值"onclick="getVal();"/></div></div>
<script>function getVal(){var rangeObj = mui('#range1'); mui.toast(rangeObj[0].value);}</script>


3、switch 開關
mui提供了開關控制元件,點選滑動兩種手勢都可以對開關控制元件進行操作,UI如下:

預設開關控制元件,帶on/off文字提示,開啟時為綠色背景,基本class類為.mui-switch、.mui-switch-handle,DOM結構如下:

<divclass="mui-switch"><divclass="mui-switch-handle"></div></div>

若希望開關預設為開啟狀態,只需要在.mui-switch節點上增加.mui-active類即可,如下:

<!-- 開關開啟狀態,多了一個.mui-active類 --><divclass="mui-switch mui-active"><divclass="mui-switch-handle"></div></div>

若希望隱藏on/off文字提示,變成簡潔模式,需要在.mui-switch節點上增加.mui-switch-mini類,如下:

<!-- 簡潔模式開關關閉狀態 --><divclass="mui-switch mui-switch-mini"><divclass="mui-switch-handle"></div></div><!-- 簡潔模式開關開啟狀態 --><divclass="mui-switch mui-switch-mini mui-active"><divclass="mui-switch-handle"></div></div>

mui預設還提供了藍色開關控制元件,只需在.mui-switch節點上增加.mui-switch-blue類即可,如下:

<!-- 藍色開關關閉狀態 --><divclass="mui-switch mui-switch-blue"><divclass="mui-switch-handle"></div></div><!-- 藍色開關開啟狀態 --><divclass="mui-switch mui-switch-blue mui-active"><divclass="mui-switch-handle"></div></div>

藍色開關上增加.mui-switch-mini即可變成無文字的簡潔模式

若要獲得當前開關狀態,可通過判斷當前開關控制元件是否包含.mui-active類來實現,若包含,則為開啟狀態,否則即為關閉狀態;如下為程式碼示例:

var isActive = document.getElementById("mySwitch").classList.contains("mui-active");if(isActive){
  console.log("開啟狀態");}else{
  console.log("關閉狀態");}

若使用js開啟、關閉開關控制元件,可使用switch外掛的toggle()方法,如下為示例程式碼:

mui("#mySwitch").switch().toggle();

事件
開關控制元件在開啟/關閉兩種狀態之間進行切換時,會觸發toggle事件,通過事件的detail.isActive屬性可以判斷當前開關狀態。可通過監聽toggle事件,可以在開關切換時執行特定業務邏輯。如下為使用示例:

document.getElementById("mySwitch").addEventListener("toggle",function(event){if(event.detail.isActive){
    console.log("你啟動了開關");}else{
    console.log("你關閉了開關");}})