jQuery多类型范围选择器插件

兼容ie8 日期选择器 范围选择器 2016-07-30

控件介绍
range-picker是一款支持多种类型数据的jQuery范围选择器插件。该范围选择器支持日期范围,星期范围,月份范围,整数范围等。并且可以设置为只支持单向选择,或双向选择的范围选择器。
浏览器兼容

支持IE8+

演示下载 1027
使用方法

安装

可以通过bower来安装range-picker范围选择器插件。

1
bower install --save range-picker                 

使用方法

在页面中引入range-picker.css,jQuery和range-picker.js文件。

1
2
3
<link rel="stylesheet" href="css/range-picker.css"/>
<script type="text/javascript" src="path/to/jquery.min.js"></script>                 
<script type="text/javascript" src="js/range-picker.js"></script>                 
HTML结构

可以使用一个空的<div>作为范围选择器的容器。

1
<div id="date_range"></div>             
初始化插件

在页面DOM元素加载完毕之后,可以通过rangepicker()方法来初始化该范围选择器插件。

1
$("#date_picker").rangepicker();               

配置参数

range-picker范围选择器的可用配置参数有:

  • startValue:范围选择器左侧的标签。默认值为none
  • endValue:范围选择器右侧的标签。默认值为none
  • type:范围选择器的类型,可以是single,表示单向选择,或者是double,表示双向选择。默认值为single。例如:
    1
    2
    3
    4
    5
    6
    7
    8
    $("#number_range").rangepicker({
        type: "double",
        startValue: 0,
        endValue: 100,
        translateSelectLabel: function(currentPosition, totalPosition) {
            return parseInt(100 * (currentPosition / totalPosition));
        }
    });
  • translateSelectLabel:获取手柄的文本,类型Function,默认值为none

    参数:

    • currentPosition:手柄的位置。
    • totalWidth:进度条的宽度。
    1
    2
    3
    4
    5
    6
    7
    $("#number_range").rangepicker({
        startValue: 0,
        endValue: 100,
        translateSelectLabel: function(currentPosition, totalPosition) {
            return parseInt(100 * (currentPosition / totalPosition));
        }
    });

方法

  • getSelectValue:获取选择的范围。会返回一个对象,对象中的startLabel是开始标签,endLabel是结束标签。例如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var d1 = $("#date_range").rangepicker({
        startValue: dateFormat(startDate, "yyyy/MM/dd"),
        endValue: dateFormat(endDate, "yyyy/MM/dd"),
        translateSelectLabel: function(currentPosition, totalPosition) {
            var timeOffset = offset * ( currentPosition / totalPosition);
            var date = new Date(+startDate + parseInt(timeOffset));
            return dateFormat(date, "yyyy/MM/dd");
        }
    });
    var result = d1.getSelectValue();
    console.info(result); 
  • updatePosition:更新手柄的位置。参数:
    • endPosition:右侧手柄的位置。
    • startPosition:左侧手柄的位置。

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var rangePicker = $("#number_range").rangepicker({
        startValue: 0,
        endValue: 100,
        translateSelectLabel: function(currentPosition, totalPosition) {
            return parseInt(100 * (currentPosition / totalPosition));
        }
    });
     
    rangePicker.updatePosition("-50px", "10%");
    // rangePicker.updatePosition("-50px");
    // rangePicker.updatePosition("-50px", "50px");
    // rangePicker.updatePosition("90%", "10%");
  • range-picker范围选择器插件的github地址为:https://github.com/zhangtasdq/range-picker

    本文转载请注明出处:http://www.zhuiye.com/detail_67.html