npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

z-iosselect

v0.0.9

Published

iosselect for andriod and ios

Downloads

8

Readme

求打赏

image

master主干为稳定版,可放心使用

分支beta,大幅度减少dom操作,源代码从3000行降到1500行,优化性能,但是还没经过项目实践,欢迎试用beta版并告知bug

iosselect

#webapp模仿ios下拉菜单

html下拉菜单select在安卓和IOS下表现不一样,iosselect正是为统一下拉菜单样式而生

我们以IOS下select的交互和样式为蓝本,开发了这一组件

特点

可以做到0依赖,只需引用一个js和css即可,样式可自己定制,也可使用默认样式

更新日志

2016-12-27

   修复chrome版本55.x下滚动缓慢的问题

   修复一个页面不能同时实例化多个组件的问题    

   2016-12-6

   发布分支beta,大幅度减少dom操作,源代码从3000行降到1500行,优化性能,欢迎使用beta版    

   2016-11-28

   1,添加options.itemShowCount参数,展示的选项可以为3,5,7,9。默认为7项

2016-11-11

   1,npm publish

  2016-11-7

1,支持最多5级级联,level参数可设置1,2,3,4,5  

2,支持设置高度和高度单位,默认单位px,itemHeight默认35,headerHeight默认44
  比如我们要使用rem,可以在options参数里设置如下参数
  itemHeight: 0.7,
  headerHeight: 0.88,
  cssUnit: 'rem',

3,联动后默认值,比如年份变更后,之前的月份选中值不变

使用方法

  方法1:npm install iosselect

  方法2:直接引用静态文件,参看demo

文件说明

src------iosselect基于iscroll5开发,在这个文件夹下可以看到iscroll.js,iosselect.js,iosselect.css,如果项目里有单独使用iscroll5,可以使用这个版本

merge------合并了iscroll与iosselect,做到组件0依赖,方便开发

demo------使用demo,说明如下:

one------一级下拉菜单,以银行选择为实例

two------二级下拉菜单,相互独立,没有关联,以三国杀组合选将为例

three------三级下拉菜单,省市区选择三级联动

rem------rem框架adaptivejs的特定版本

datepicker------日期选择器,通过方法筛选数据,实现三级联动,ajax获取数据时可参考此例

   five------日期时间选择器,五级选择器,前三级联动

使用说明

###API## new IosSelect(level, data, options) level: 级联等级,支持1,2,3,4,5 必选项 data: [oneLevelArray[, twoLevelArray[, threeLevelArray, [fourLevelArray, [fiveLevelArray]]]]] 除了用数组,也可以用方法 options: container: 组件的父元素,传入css3选择器,比如'.a' 或 '#a'之类的 callback: 选择完毕后的回调函数 必选 title: 选择框title 可选,没有此参数则不显示title itemHeight: 每一项的高度,可选,默认 35 headerHeight: 组件标题栏高度 可选,默认 44 cssUnit: css单位,目前支持px和rem,默认为px addClassName: 组件额外类名 可选,用于自定义样式 relation: [1, 1, 0, 0]: [第一二级是否关联,第二三级是否关联,第三四级是否关联,第四五级是否关联] ,默认不关联,即默认是[0, 0, 0, 0] oneLevelId: 第一级选中id 可选 twoLevelId: 第二级选中id 可选 threeLevelId: 第三级选中id 可选 fourLevelId: 第四级选中id 可选 fiveLevelId: 第五级选中id 可选 showLoading: 如果你的数据是异步加载的,可以使用该参数设置为true,下拉菜单会有加载中的效果 itemShowCount: 组件展示选项数目 可以为3,5,7,9 默认为7 ##参数说明##

data: 数组,前五项分别对应级联1,2,3,4,5项,每一项又是一个数组或方法
    如果是数组:
	每一项数组中包含一系列对象,每个对象必须要有id,作为该条数据在该项数组中的唯一标识,value作为显示值,parentId是可选属性,作为关联的标志
	数据形如:
	var iosProvinces = [
	    {'id': '130000', 'value': '河北省', 'parentId': '0'}
	];
	var iosCitys = [
	    {"id":"130100","value":"石家庄市","parentId":"130000"},
	];
	当我们选择河北省时,就到城市中找到parentId为河北省id的数据,然后展示出来

    如果是方法:
	    其参数分别为前几列的选中值和callback方法,比如:第一列获取数据的方法参数为callback,第二列参数为one,callback,第三列参数为one,two,callback,依次类推,第五列的参数为one,two,three,four,callback,callback调用时传入数据即可	
	    数据形如:
	    var yearData = function(callback) {
		callback(formatYear(nowYear))
	    }
	    var monthData = function (year, callback) {
		callback(formatMonth());
	    };
	    var dateData = function (year, month, callback) {
		callback(formatDate(28));
	    }
	    var hourData = function(one, two, three, callback) {
		var hours = [];
		for (var i = 0,len = 24; i < len; i++) {
		    hours.push({
			id: i,
			value: i + '时'
		    });
		}
		callback(hours);
	    };
	    var minuteData = function(one, two, three, four, callback) {
		var minutes = [];
		for (var i = 0, len = 60; i < len; i++) {
		    minutes.push({
			id: i,
			value: i + '分'
		    });
		}
		callback(minutes);
	    };

	    具体可参考demo中的日期选择器和日期时间选择器

options.callback(selectOneObj, selectTwoObj, selectThreeObj, selectFourObj, selectFiveObj) 每级选中项,包含对应数据的所有字段及dom对象


##以地址选择为例:## ##data为三个数组:## http://zhoushengfe.com/iosselect/demo/three/area.html

    --------------------------------------------------------------------------------

##日期选择器## ##data为方法:## http://zhoushengfe.com/iosselect/demo/datepicker/date.html

           -------------------------------------------------------------------------------- ##demo说明 一级级联,银行选择

http://zhoushengfe.com/iosselect/demo/one/bank.html

二级级联,三国杀将领组合选

http://zhoushengfe.com/iosselect/demo/two/sanguokill.html

三级级联,省市区选择

http://zhoushengfe.com/iosselect/demo/three/area.html

viewport缩放时处理方案

http://zhoushengfe.com/iosselect/demo/rem/bank.html

日期选择器 三级联动,通过方法获取数据,并且有加载中效果

http://zhoushengfe.com/iosselect/demo/datepicker/date.html

日期时间选择器,共五级,通过方法获取数据

http://zhoushengfe.com/iosselect/demo/five/time.html

###如果要修改菜单项里样式,请自行修改样式,比如:

.ios-select-widget-box ul li

###如果要设置页面默认选中值,可以将默认值写在html元素中,以地址选择器为例:

<span data-city-code="510100" data-province-code="510000" data-district-code="510105" id="show_contact">四川省 成都市 青羊区</span>

页面就有默认选项啦

如果有使用问题,可加QQ群:419468553