移动端可滑动选择插件-mobileSelect.js

2019-10-19   阅读:4422   类型:前端   分类:插件    标签: 插件

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

GIF.gif

image.png

image.png

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport">
<title>移动端可滑动选择插件-mobileSelect.js</title>
<!-- 引入样式和js文件 -->
    <link rel="stylesheet" type="text/css" href="mobileSelect.css">
    <script src="mobileSelect.js" type="text/javascript"></script>
</head>
<body>
<style>
    .nav h1{ font-size: 22px;}
    .contain{ width: 100%; text-align: center;}
    .demo{ width: 200px; margin: 0 auto;}
    .demo div{ width: 100%; height: 40px; float: left; background: #f04124; border-radius: 4px; margin-top: 2px; color: #fff; line-height: 40px;}
</style>
<div>
    <div>
        <div>
            <h1>移动端可滑动选择插件-mobileSelect.js</h1>
        </div>
        <div>
            <div id="trigger1">单项选择</div>
            <div id="trigger2">双项选择</div>
            <div id="trigger3">多项选择</div>
            <div id="trigger4">地区选择-级联</div>
            <div id="trigger5">车型选择-级联</div>
        </div>
    </div>
</div>
<script type="text/javascript">


var weekdayArr=['周日','周一','周二','周三','周四','周五','周六'];
var timeArr = ['08:30','09:00','09:30','10:00','10:30','11:00','11:30','12:00','12:30','13:00','13:30','14:00','14:30','15:00','15:30','16:00','16:30','17:00','17:30','18:00','18:30','19:00','19:30','20:00','20:30','21:00'];
var numArr=['1','2','3','4','5'];

var UplinkData =
[
    {id:'1',value:'兰博基尼'},
    {
        id:'2',
        value:'劳斯莱斯',
        childs:[
            {
                id:'1',
                value:'曜影'
            },
            {
                id:'2',
                value:'幻影',
                childs:[
                    {
                        id:'1',
                        value:'标准版'
                    },
                    {
                        id:'2',
                        value:'加长版'
                    },
                    {
                        id:'3',
                        value:'巅峰之旅'
                    },
                    {
                        id:'4',
                        value:'流光熠世'
                    },
                    {
                        id:'5',
                        value:'都会典藏版'
                    }
                ]
            },
            {
                id:'3',
                value:'古思特',
                childs:[
                    {
                        id:'1',
                        value:'加长版'
                    },
                    {
                        id:'2',
                        value:'永恒之爱'
                    },
                    {
                        id:'3',
                        value:'英骥'
                    },
                    {
                        id:'4',
                        value:'阿尔卑斯典藏版'
                    }
                ]
            },
            {
                id:'4',
                value:'魅影',
                childs:[
                    {
                        id:'1',
                        value:'标准版'
                    },
                    {
                        id:'2',
                        value:'Black Badge'
                    }
                ]
            }
        ]
    },
    {
        id:'3',
        value:'宾利',
        childs:[
            {
                id:'1',
                value:'慕尚',
                childs:[
                    {
                        id:'1',
                        value:'标准版'
                    },
                    {
                        id:'2',
                        value:'极致版'
                    }
                ]
            },
            {
                id:'2',
                value:'欧陆',
                childs:[
                    {
                        id:'1',
                        value:'尊贵版'
                    },
                    {
                        id:'2',
                        value:'敞篷标准版'
                    },
                    {
                        id:'3',
                        value:'敞篷尊贵版'
                    }
                ]
            }
        ]
    },
    {
        id:'4',
        value:'法拉利',
        childs:[
            {
                id:'1',
                value:'LaFerrari'
            },
            {
                id:'2',
                value:'法拉利488'
            },
            {
                id:'3',
                value:'GTC4Lusso'
            }
        ]
    },
    {
        id:'5',
        value:'玛莎拉蒂',
        childs:[
            {
                id:'1',
                value:'总裁'
            },
            {
                id:'2',
                value:'玛莎拉蒂GT'
            },
            {
                id:'3',
                value:'Levante'
            }
        ]
    }
];


//----------------------------------------------------------
//更多参数详情可查看文档 https://github.com/onlyhom/mobileSelect.js

/**
 * 参数说明
 * @param trigger(必填参数) 触发对象的id/class/tag
 * @param wheels(必填参数)  数据源,需要显示的数据
 * @param title 控件标题
 * @param position 初始化定位
 * @param callback 选择成功后触发的回调函数,返回indexArr(选中的选项索引)、data(选中的数据)
 * @param transitionEnd 每一次手势滑动结束后触发的回调函数,返回indexArr(当前选中的选项索引)、data(选中的数据)
 * @param keyMap 字段名映射
 */

/**
 * 函数说明(实例化之后才可用)
 * @function setTitle()      参数 string                 设置控件的标题
 * @function updateWheel()   参数 sliderIndex, data      重新渲染指定的轮子(可用于先实例化,后通过ajax获取数据的场景)
 * @function updateWheels()  参数 data                   重新渲染所有轮子,仅限级联数据格式使用(可用于先实例化,后通过ajax获取数据的场景)
 * @function locatePosition() 参数 sliderIndex, posIndex  传入位置数组,重定位轮子的位置
 * @function show()          参数 无参                   唤起弹窗组件
 * @function getValue()      参数 无参                   获取组件选择的值
 */



var mobileSelect1 = new MobileSelect({
    trigger: '#trigger1',
    title: '单项选择',
    wheels: [
                {data: weekdayArr}
            ],
    position:[2], //初始化定位 打开时默认选中的哪个 如果不填默认为0
    transitionEnd:function(indexArr, data){
        //console.log(data);
    },
    callback:function(indexArr, data){
        console.log(data);
    }
});


var mobileSelect2 = new MobileSelect({
    trigger: '#trigger2',
    title: '双项选择',
    wheels: [
                {data: weekdayArr},
                {data: timeArr}
            ],
    position:[1, 2],
    transitionEnd:function(indexArr, data){
        //console.log(data);
    },
    callback:function(indexArr, data){
        console.log(data);
    }
});


var mobileSelect3 = new MobileSelect({
    trigger: '#trigger3',
    title: '多项选择',
    wheels: [
                {data: numArr},
                {data: numArr},
                {data: numArr},
                {data: numArr},
                {data: numArr}
            ],
    position:[0, 1, 0, 1, 0],
    transitionEnd:function(indexArr, data){
        //console.log(data);
    },
    callback:function(indexArr, data){
        console.log(data);
    }
});


var mobileSelect4 = new MobileSelect({
    trigger: '#trigger4',
    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:'西湖区'}
                ]}
            ],
    transitionEnd:function(indexArr, data){
        //console.log(data);
    },
    callback:function(indexArr, data){
        console.log(data);
    }
});


var mobileSelect5 = new MobileSelect({
    trigger: '#trigger5',
    title: '车型选择',
    wheels: [
                {data : UplinkData}
            ],
    position: [2,0],
    transitionEnd:function(indexArr, data){
        //console.log(data);
    },
    callback:function(indexArr, data){
        console.log(data);
    }
});



</script>
</body>
</html>

附件下载:

链接:https://pan.baidu.com/s/1AvrIveJVO-2FlLsxYpii7g&shfl=sharepset

提取码:y2mi


【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/fdetail/237.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×