js联动选择插件mobileSelect.js

所属分类:输入-选择框

 77832  480  查看评论 (43)
分享到微信朋友圈
X
js联动选择插件mobileSelect.js ie兼容10

更新时间:2017/9/8 上午12:20:01

更新说明:更新到最新版

mobileSelect.js

一款多功能的移动端滚动选择器,支持单选到多选、支持多级级联、提供自定义回调函数、提供update函数二次渲染、重定位函数、兼容pc端拖拽等等..    

特性

  • 原生js移动端选择控件,不依赖任何库

  • 可传入普通数组或者json数组

  • 可根据传入的参数长度,自动渲染出对应的列数,支持单项到多项选择

  • 自动识别是否级联

  • 选择成功后,提供自定义回调函数callback() 返回当前选择索引位置、以及选择的数据(数组/json)

  • 每次手势滑动结束后,也提供一个回调函数transitionEnd() 返回当前选择索引位置、以及选择的数据(数组/json)

  • 能够在已经实例化控件后,提供update函数,传其他参数再次渲染

  • 提供重定位函数

使用方法

引入

<link rel="stylesheet" type="text/css" href="css/mobileSelect.css">
<script src="js/mobileSelect.js" type="text/javascript"></script>

快速入门

①普通数组格式-非联动

<div id="day"></div>
<script type="text/javascript">
var mobileSelect1 = new MobileSelect({
    trigger: '#day', 
    title: '单项选择',  
    wheels: [
                {data:['周日','周一','周二','周三','周四','周五','周六']}
            ],
    position:[2] //初始化定位
});
</script>

②json格式-非联动

<div id="area"></div>
<script type="text/javascript">
var mobileSelect2 = new MobileSelect({
    trigger: '#area',
    title: '地区选择',
    wheels: [
                {data:[
                    {id:'1',value:'附近'},
                    {id:'2',value:'上城区'},
                    {id:'3',value:'下城区'},
                    {id:'4',value:'江干区'},
                    {id:'5',value:'拱墅区'},
                    {id:'6',value:'西湖区'}
                ]},
                {data:[
                    {id:'1',value:'1000米'},
                    {id:'2',value:'2000米'},
                    {id:'3',value:'3000米'},
                    {id:'4',value:'5000米'},
                    {id:'5',value:'10000米'}
                ]}
            ],
    callback:function(indexArr, data){
        console.log(data); //返回选中的json数据
    } 
});
</script>

③json格式-联动

<div id="area2"></div>
<script type="text/javascript">
  var addressLocation = new MobileSelect({
      trigger: '#area2',
      title: '地区选择-联动',
      wheels: [
                  {data:[
                      {
                          id:'1',
                          value:'附近',
                          childs:[
                              {id:'1',value:'1000米'},
                              {id:'2',value:'2000米'},
                              {id:'3',value:'3000米'},
                              {id:'4',value:'5000米'},
                              {id:'5',value:'10000米'}
                          ]
                      },
                      {id:'2',value:'上城区'},
                      {id:'3',value:'下城区'},
                      {id:'4',value:'江干区'},
                      {id:'5',value:'拱墅区'},
                      {id:'6',value:'西湖区'}
                  ]}
              ],
      position:[0,1],
      callback:function(indexArr, data){
          console.log(data); //返回选中的json数据
      } 
  });
</script>

参数

选项默认值类型描述
trigger必填参数 无默认值String触发对象的id/class/tag
wheels必填参数 无默认值Array数据源,需要显示的数据
title''            String控件标题
position[0,0,0,…]Array初始化定位
callbackfunction(indexArr, data){}function选择成功后触发的回调函数,返回indexArr、data
transitionEndfunction(indexArr, data){}function每一次手势滑动结束后触发的回调函数,返回indexArr、data

注:回调函数中返回的参数含义如下

  • indexArr是当前选中的索引数组 如[0,0,1] 代表有三个轮子 选中的数据是第一个轮子的第0个数据、第二个轮子的第0个数据、第三个轮子的第1个数据

  • data是当前选中的json数据 如[{id:'1',value:'hello'},{id:'2',value:'world'}]

功能函数:

函数名参数描述
setTitle()string设置控件的标题
updateWheel()sliderIndex, data重新渲染指定的轮子
locatePostion()sliderIndex, posIndex传入位置数组,重定位轮子的位置


注:功能函数中需要传递的参数含义如下

  • sliderIndex 代表的是要修改的轮子的索引

  • posIndex 代表位置索引

功能函数demo:

<div id="day"></div>
var mySelect = new MobileSelect({
    trigger: '#day', 
    wheels: [
                {data:['周日','周一','周二','周三','周四','周五','周六']},
                {data:['08:00','09:00','10:00','11:00','12:00','13:00','14:00']}
            ],
    position:[1,1] //初始化定位 两个轮子都选中在索引1的选项
});
//----------------------------------------------
//进行基础的实例化之后,对实例用功能函数操作 
// mySelect.setTitle('啦啦啦(???????)'); 
// 设置控件的标题
// mySelect.updateWheel(0,['sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']);
// 更新第0个轮子的数据,数据变为英文的星期几
// mySelect.locatePostion(1,0);
// 重新定位第1个轮子的位置,将第1个轮子的第0个数据改为当前选中。
// (第1个轮子是指右边的轮子,左边的轮子是第0个)
相关插件-选择框

Combobox 下拉插件(原创)

基于 jQueryUI的下拉插件combobox.js
  选择框
 33984  337

jQuery世界地区三级联动

jQuery世界地区三级联动带搜索功能
  选择框
 44666  370

jQuery下拉框插件jquery.select.js

jQuery自定select下拉框样式插件jquery.select.js
  选择框
 99604  373

jq模拟下拉省市区三级联动插件

jq模拟下拉的省市区三级联动插件,完美兼容在ie下显示select的不友好ui,数据完整可直接使用
  选择框
 62152  444

讨论这个项目(43)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    泡泡 0
    2022/1/7 10:41:46
    ljn1989 0
    2021/6/23 9:50:57
    滑动选中的值,可以修改样式么? 回复
    第八日的蝉。 0
    2021/1/25 10:10:34
    updateWheels这个方法好像不能更新数据源而是在后面追加了,有人遇到过这个问题吗???? 回复
    jQueryLxb 0
    2019/8/17 9:06:09
    _专专专专专忄青つ° 0
    2019/7/31 21:24:06
    二个选择的时候怎么显示的时候加个横线呢???? 求大佬帮忙解答 回复
    CEO 0
    2019/7/2 14:31:16
    看起来不错,如果有全国城市的json就更好了 回复
      0
    2019/6/14 19:37:00
    transitionEnd,手势滑动结束后的返回值为什么不是当前选择的值 回复
    ?ˇ遇见 0
    2018/11/30 11:55:48
    请问滑动过程中怎么修改选中相应文字的颜色? 回复
    稀饭 0
    2018/11/7 9:45:18
    请问这个插件是不是不兼容Vue啊?使用Vue的时候插件点击没反应了
        稀饭0
        2018/11/7 9:50:44
        解决了,原来要先实例Vue
    回复
    W 0
    2018/8/21 11:18:20
    请问这最后一个类似效果的有pc用的吗 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复