AlloyTouch之select选择插件
写在前面
很多情况下,产品希望统一安卓和IOS select交互和样式。但是众所周知,IOS和安卓的select唤起的选择界面并不是样的,甚至IOS不同系统版本以及安卓不同系统版本下的select唤起的界面也不是相同的。而且省市区多选的需求,不管是IOS和安卓都没有提供原生界面的支持。所以唯一的办法就是web去模拟select唤起界面。

如上图所以,中间的区域是支持触摸运动。什么触摸运动?AlloyTouch不就是专门干这个的吗!
但是需要停在某个日期上!什么需要停在某个日期上?AlloyTouch不是可以配置step的吗!
所有问题迎刃而解~
在线演示

http://alloyteam.github.io/AlloyTouch/select/simple/
插件使用
先引用依赖的JS和CSS文件。
<link rel="stylesheet" href="select.css" />
<script src="../../transformjs/transform.js"></script>
<script src="../../alloy_touch.js"></script>
<script src="../../alloy_touch.select.js"></script>
然后:
new AlloyTouch.Select({
options: [
{ value: "all", text: "累计" },
{ value: "2015-9", text: "2015年9月" },
{ value: "2015-8", text: "2015年8月" },
{ value: "2015-7", text: "2015年7月" },
{ value: "2015-6", text: "2015年6月" },
{ value: "2015-5", text: "2015年5月" },
{ value: "2015-4", text: "2015年4月" },
{ value: "2015-3", text: "2015年3月" },
{ value: "2015-2", text: "2015年2月" },
{ value: "2015-1", text: "2015年1月" },
{ value: "2014-12", text: "2014年12月" },
{ value: "2014-11", text: "2014年11月" },
{ value: "2014-10", text: "2014年10月" }
],
selectedIndex: 3,
change: function (item, index) {
},
complete: function (item, index) {
}
})
- options是所有项的集合
- selectedIndex是初始选中项的索引
- change是改变的回调
- complete是点击完成按钮的回调
核心原理
Transform(scroll);
new AlloyTouch({
touch: container,
target: scroll,
initialValue: selectedIndex * -1 * step,
property: "translateY",
min: (len - 1) * -30,
max: 0,
step: step
});
- container是触摸的区域
- scroll就是滚动的对象
- step就是每一个日期的高度
- initialValue是初始的位置,会根据当前的索引selectedIndex乘以step计算出位置
通过上面的配置,scroll最终都会被校正到step的整数倍,小于min会回弹,大于max也会回弹。
总结
可以看到,AlloyTouch很擅长处理触摸运动。当然上面只是一个简单的例子,这仅仅是一个开始!
后续还会给大家带来:
- AlloyTouch无限循环select实战
- AlloyTouch多项级联select实战
- AlloyTouch实现3D效果select实战
Github
https://github.com/AlloyTeam/AlloyTouch
你要触摸的一切都在这里。
AlloyTouch之select选择插件的更多相关文章
- 纯原生js移动端城市选择插件
接着上一篇纯js移动端日期选择插件,话说今天同事又来咨询省市县联动的效果在移动端中如何实现,还是老样子,百度上一搜,诶~又全是基于jquery.zepto的,更加可恨的是大多数都是PC版的,三个sel ...
- sencha touch 带本地搜索功能的selectfield(选择插件)
带本地搜索功能的选择插件,效果图: 在使用selectfield的过程中,数据过大时,数据加载缓慢,没有模糊查询用户体验也不好, 在selectfield的基础上上稍作修改而成,使用方式同select ...
- #Plugin 中国省市选择插件
中国省市选择插件 ChineseCities 1.原生JS,不依赖jquery,zepto 2.前端学习交流群:814798690 源码查看 点击下载 https://github.com/chao ...
- 【jquery】多日期选择插件easyui date
1.本次介绍一个好用的 多日期选择插件:EasyUI date,适用于:需要一次性选择多个日期,无需手动一个一个进行添加. 2.效果图: 3.下载地址:http://www.jeasyui.com/d ...
- Chosen:Select 选择框的华丽变身
HTML Form 表单里的各种组件,例如文本输入框,textarea,按钮等,都可以通过CSS或其它技术进行美化,让它们看起来很漂亮了,唯独下拉列表选项框(select box),不管你怎么做,它摆 ...
- 移动端城市选择JavaScript插件(基于WG的城市选择插件的修改版本)
周末的时候趁着一次机会,拿WG(博客)开发的城市选择插件改了一个移动端可以直接用的城市选择插件. 原版插件是基于原声JavaScript写的,在此先感谢作者. 我做的只是依照肯德基注册会员的页面的交互 ...
- Notes: select选择框
HTML选择框通过select标签创建,该元素是HTMLSelectElement的实例,拥有以下属性和方法: selectedIndex:选中项的索引 options:选择框的所有选项 add:向选 ...
- jQuery取得select选择的文本与值
jquery获取select选择的文本与值获取select :获取select 选中的 text :$("#ddlregtype").find("option:selec ...
- select 选择的制作
我说的select选择是指 手机端的话,一般考虑元素 + 伪类制作 .checkbox{ border:1px solid #987;width:16px;height:16px; } .checkb ...
随机推荐
- java判断是否为汉字
java判断是否为汉字 public static boolean isChinese(String str) { String regEx = "[\u4e00-\u9fa5]&quo ...
- PLSQL的一些事儿
每一个软件都是设计精妙的 plsql就可以使用一些简单代码代替长的语句,比如s=SELECT * FROM 数据插入报错: 原因: 一般情况下,数据库的NLS_CHARACTERSET 为AL32UT ...
- 浅谈JavaWEB入门必备知识之Servlet入门案例详解
工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...
- CentOS-6.6下Tomcat-7.0安装与配置(Linux)
CentOS-6.6下Tomcat-7.0安装与配置(Linux) 一.认识tomcat Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目, ...
- redis3 list类型
list类型及操作list是一个链表结构,主要功能是push,pop.获取一个范围的所有值等,操作中key理解为链表的名字.redis的list类型其实就是一个每个子元素都是string类型的双向链表 ...
- PHPCMS 详情页静态化
<?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin',' ...
- window.open a.href打开窗口referer的问题
window.open a.href打开窗口referer的问题: JSP: <%@ page language="java" import="java.util. ...
- 关于异常“The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine”的处理
我们在利用SqlBlukcopy技术倒2010 或者2007格式的文件到SqlServer 数据库的时候,会发生如下错误: 原因如下: 1.在用SQL SERVER 2005访问.xlsx文件(off ...
- 将 Callout 容器添加到移动设备应用程序中
在移动设备应用程序中,callout 是在应用程序顶部弹出的容器.该容器可以容纳一个或多个组件,并且支持不同类型的布局. callout 容器可以是模态或非模态容器.模态容器在其关闭之前接受所有的键盘 ...
- POJ1556(割点)
SPF Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8114 Accepted: 3716 Description C ...