移动端选择器picker有很多,各大ui组件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等。但是,我发现他们都有各种各样的问题。这次的地区选择,需要地区的省份+市+经纬度,还要设置第一次点开的时候是特定城市。

demo:链接:https://pan.baidu.com/s/1n5ApFB4elywxD_QekhSW6Q 密码:cd2k

分析一波问题:

先说light7,它的picker是最low的,data里只有选项,木有ID,更木有其他内容。双联三联picker的时候想特定一个选项就更别说了,在弹窗里用的时候更是恶心,曾经改过它的源代码,想让它更实用一点,但只能用在普通选择,这次的需求直接把它pass掉了。

HUI:它的picker比light7好一点点,data里面可以放value和text。但是在双联的时候并不能设置特定城市,而且在快速滚动的时候,迅速点确定,会出现结果是北京而内容却定格在天津的情况。

MUI:emmmm,这是一个最不要脸的框架:“最接近原生APP的前端框架”,以前拿它做过几个P2P的APP,是挺简单的,但是有很多奇怪的问题,比如和jquery各种冲突什么的,这里就不多说了。它的picker,只能设置单联的特定城市,在快速滚动点确定的时候比HUI还要不堪,会出现广西壮族自治区——南京......而且治不好。。。

最后选择了mobile Picker:这个东西暂时没发现类似上面那些框架的毛病,起码在这次的需求是完全满足的。

<!doctype html>
<html lang="zh-cn"> <head>
<meta charset="UTF-8">
<title>mobileSelect Demo</title>
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="wap-font-scale" content="no">
<meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1,user-scalable=no">
<meta name="keywords" content="">
<meta name="description" content=""> <!-- 引入样式和js文件 -->
<link rel="stylesheet" type="text/css" href="css/mobileSelect.css">
<script src="js/mobileSelect.js" type="text/javascript"></script>
<script src="js/city.data.js"></script> </head> <body> <div class="demo">
<div id="trigger4">地区选择-级联</div>
</div> <script type="text/javascript">
var mobileSelect4 = new MobileSelect({
trigger: '#trigger4',
title: '地区选择',
wheels: [{
data: cityData
}],
position: [32, 0], //设定默认选项
transitionEnd: function(indexArr, data) {
console.log(data);
},
callback: function(indexArr, data) {
console.log(data);
}
}); var kk = 0
var ss = 0
for(var k = 0; k < cityData.length; k++) {
kk++
var childs = cityData[k].childs;
for(var m = 0; m < childs.length; m++) {
ss++
}
}
console.log("省份:" + kk)
console.log("城市:" + ss)
</script> </body> </html>

代码很简单,不懂的百度一下。

最后发表一下感言,以前喜欢用框架,项目做多了才发现没有一款框架是可以完美满足一切需求的,现在我做移动端项目已经不再用框架了,因为框架需要加载CSS和JS,就算再好的框架也是会占用带宽和用户浏览器性能的,不如提取出各框架中有用的属性或者模块,视项目而选择属性加载。

地区picker 各选择器,优劣分析的更多相关文章

  1. 微信小程序组件解读和分析:十二、picker滚动选择器

    picker滚动选择器组件说明: picker: 滚动选择器,现支持三种选择器,通过mode属性来区分, 分别是普通选择器(mode = selector),时间选择器(mode = time),日期 ...

  2. picker多级选择器的使用————小程序

    picker多级选择器的使用----小程序 picker是选择器来着,既然选择了,就希望可以获取选择的数据. index.html <view>picker获取数据</view> ...

  3. spark和strom优劣分析

    对于Storm来说:1.建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析2.此外,如果对于实时计算的功能中,要求可靠的事务机制和可靠性机制,即数据 ...

  4. 小程序地区时间自定义选择器 picker

    进入微信公众平台小程序开发文档搜索 picker 点进去后下滑,点击在开发者工具中预览即可

  5. CSS选择器性能分析

    写了几篇关于js的博客,也是关于性能的,现在,我觉得有必要那css来认真分析一下了.之前只是看别人这么写就跟着写,但是没有去研究这样写或者是不是正确的写法,性价比怎么样,渲染的效率好么!这些都没有考虑 ...

  6. 小白学习mysql之存储过程的优劣分析以及接入控制

    存储过程的优劣 存储过程是一组实现特定功能的SQL语句集合,存储过程一经编译便存储在了服务器上,可以通过调用存储过程的名字以及传入相应的参数来使用存储过程.要高层次的掌握存储过程,不能觉得依葫芦画瓢, ...

  7. 【picker】选择器组件说明

    picker从底部弹起选择器组件 组件细节: 1) 该组件有五种类型,分别是普通选择器.多列选择器.时间选择器.日期选择器.省市区选择器. 2) 组件内必需包裹内容,不然无法弹出选项 <!-- ...

  8. 微信小程序—picker(滚动选择器)

    官方api:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html 上边是官网的api.小程序中,底部下拉滚动选择主要有这几种 ...

  9. jquery选择器项目实例分析

    首先废话一句,jQuery选择器真心很强大!  在项目中遇到这么一个问题easyui的问题 如图所示,当前页面显示的是"原始报文查询"的页面,当时左侧导航栏却选中的是"重 ...

随机推荐

  1. 对于opencv全面貌的认识和理解

    1.opencv其实最开始只有源码,也就是sources中的代码,sources中有个modules,进入里面是各个我们平常使用的模块,如下图. 进入任意一个模块,比如calib3d,其中有inclu ...

  2. ThreadLocal的练习代码

    场景: 有三个小孩儿,买了一个变形金刚玩具(Transformer).... 三个小孩都争着玩这个玩具....没有一个人可以玩... 第一种方式:每个人各玩一会.... 第二种方式:再买两个玩具,一个 ...

  3. C#:时间日期操作(持续更新)

    1.给定时间戳返回指定的时间格式 private string StampToDate(string timeStamp,string format) { DateTime dtStart = Tim ...

  4. Redis笔记(1)数据结构与对象

    1.前言 此系列博客记录redis设计与实现一书的笔记,提取书本中的知识点,省略相关说明,方便查阅. 2.基本数据结构 2.1 简单动态字符串SDS(simple dynamic string) 结构 ...

  5. 使用Svn的版本号[转载]

    1. 生成一个名为autover的项目 注意项目的Properties文件夹下有一个名为AssemblyInfo.cs的文件,autover程序的版本号就写在它里面. 2. 创建模板文件 在Windo ...

  6. sublime自动对齐Alignment插件快捷键

    [ { "keys": ["ctrl+alt+f"], "command": "alignment" } ]

  7. 用Filter作用户授权的例子

    public class LoginFilter implements Filter { private String permitUrls[] = null; private String goto ...

  8. 【详解】ThreadPoolExecutor源码阅读(三)

    系列目录 [详解]ThreadPoolExecutor源码阅读(一) [详解]ThreadPoolExecutor源码阅读(二) [详解]ThreadPoolExecutor源码阅读(三) 线程数量的 ...

  9. mysql 获取自增主键

    MyBatis 3.2.6插入时候获取自增主键方法有二 以MySQL5.5为例: 方法1: <insert id="insert" parameterType="P ...

  10. 【转】CSRF基本概念

    本文转自:http://www.cnblogs.com/hyddd/ 一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one ...