123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092 |
- /**
- * IosSelect
- * @param {number} level 选择的层级 1 2 3 4 5 最多支持5层
- * @param {...Array} data [oneLevelArray[, twoLevelArray[, threeLevelArray]]]
- * @param {Object} options
- * @param {string=} options.container 组件插入到该元素下 可选
- * @param {Function} options.callback 选择完毕后的回调函数
- * @param {string=} options.title 选择框title
- * @param {number=} options.itemHeight 每一项的高度,默认 35
- * @param {number=} options.itemShowCount 组件展示的项数,默认 7,可选3,5,7,9,不过不是3,5,7,9则展示7项
- * @param {number=} options.headerHeight 组件标题栏高度 默认 44
- * @param {css=} options.cssUnit px或者rem 默认是px
- * @param {string=} options.addClassName 组件额外类名 用于自定义样式
- * @param {...Array=} options.relation 数组 [oneTwoRelation, twoThreeRelation, threeFourRelation, fourFiveRelation] 默认值:[0, 0, 0, 0]
- * @param {number=} options.relation.oneTwoRelation 第一列和第二列是否通过parentId关联
- * @param {number=} options.relation.twoThreeRelation 第二列和第三列是否通过parentId关联
- * @param {number=} options.relation.threeFourRelation 第三列和第四列是否通过parentId关联
- * @param {number=} options.relation.fourFiveRelation 第四列和第五列是否通过parentId关联
- * @param {string=} options.oneLevelId 第一级选中id
- * @param {string=} options.twoLevelId 第二级选中id
- * @param {string=} options.threeLevelId 第三级选中id
- * @param {string=} options.fourLevelId 第四级选中id
- * @param {string=} options.fiveLevelId 第五级选中id
- * @param {boolean=} options.showLoading 如果你的数据是异步加载的,可以使用该参数设置为true,下拉菜单会有加载中的效果
- */
- (function() {
- iosSelectUtil = {
- isArray: function(arg1) {
- return Object.prototype.toString.call(arg1) === '[object Array]';
- },
- isFunction: function(arg1) {
- return typeof arg1 === 'function';
- },
- attrToData: function(dom, index) {
- var obj = {};
- for (var p in dom.dataset) {
- obj[p] = dom.dataset[p];
- }
- obj['dom'] = dom;
- obj['atindex'] = index;
- return obj;
- },
- attrToHtml: function(obj) {
- var html = '';
- for (var p in obj) {
- html += 'data-' + p + '="' + obj[p] + '"';
- }
- return html;
- }
- };
- // Layer
- function Layer(html, opts) {
- if (!(this instanceof Layer)) {
- return new Layer(html, opts);
- }
- this.html = html;
- this.opts = opts;
- var el = document.createElement('div');
- el.className = 'olay';
- // var layer_el = $('<div class="layer"></div>');
- var layer_el = document.createElement('div');
- layer_el.className = 'layer';
- this.el = el;
- this.layer_el = layer_el;
- this.init();
- }
- Layer.prototype = {
- init: function() {
- this.layer_el.innerHTML = this.html;
- if (this.opts.container && document.querySelector(this.opts.container)) {
- document.querySelector(this.opts.container).appendChild(this.el);
- }
- else {
- document.body.appendChild(this.el);
- }
- this.el.appendChild(this.layer_el);
- this.el.style.height = Math.max(document.documentElement.getBoundingClientRect().height, window.innerHeight);
- if (this.opts.className) {
- this.el.className += ' ' + this.opts.className;
- }
- this.bindEvent();
- },
- bindEvent: function() {
- var sureDom = this.el.querySelectorAll('.sure');
- var closeDom = this.el.querySelectorAll('.close');
- var self = this;
- for (var i = 0, len = sureDom.length; i < len; i++) {
- sureDom[i].addEventListener('click', function(e) {
- self.close();
- });
- }
- for (var i = 0, len = closeDom.length; i < len; i++) {
- closeDom[i].addEventListener('click', function(e) {
- self.close();
- });
- }
- },
- close: function() {
- if (this.el) {
- this.el.parentNode.removeChild(this.el);
- this.el = null;
- }
- }
- }
- function IosSelect(level, data, options) {
- if (!iosSelectUtil.isArray(data) || data.length === 0) {
- return;
- }
- this.data = data;
- this.level = level || 1;
- this.options = options;
- this.typeBox = 'one-level-box';
- if (this.level === 1) {
- this.typeBox = 'one-level-box';
- }
- else if (this.level === 2) {
- this.typeBox = 'two-level-box';
- }
- else if (this.level === 3) {
- this.typeBox = 'three-level-box';
- }
- else if (this.level === 4) {
- this.typeBox = 'four-level-box';
- }
- else if (this.level === 5) {
- this.typeBox = 'five-level-box';
- }
- this.callback = options.callback;
- this.title = options.title || '';
- this.options.itemHeight = options.itemHeight || 35;
- this.options.itemShowCount = [3, 5, 7, 9].indexOf(options.itemShowCount) !== -1? options.itemShowCount: 7;
- this.options.coverArea1Top = Math.floor(this.options.itemShowCount / 2);
- this.options.coverArea2Top = Math.ceil(this.options.itemShowCount / 2);
- this.options.headerHeight = options.headerHeight || 44;
- this.options.relation = iosSelectUtil.isArray(this.options.relation)? this.options.relation: [];
- this.options.oneTwoRelation = this.options.relation[0];
- this.options.twoThreeRelation = this.options.relation[1];
- this.options.threeFourRelation = this.options.relation[2];
- this.options.fourFiveRelation = this.options.relation[3];
- if (this.options.cssUnit !== 'px' && this.options.cssUnit !== 'rem') {
- this.options.cssUnit = 'px';
- }
- this.setBase();
- this.init();
- };
- IosSelect.prototype = {
- init: function() {
- this.initLayer();
- // 选中元素的信息
- this.selectOneObj = {};
- this.selectTwoObj = {};
- this.selectThreeObj = {};
- this.selectFourObj = {};
- this.selectFiveObj = {};
- this.setOneLevel(this.options.oneLevelId, this.options.twoLevelId, this.options.threeLevelId, this.options.fourLevelId, this.options.fiveLevelId);
- },
- initLayer: function() {
- var self = this;
- var all_html = [
- '<header style="height: ' + this.options.headerHeight + this.options.cssUnit + '; line-height: ' + this.options.headerHeight + this.options.cssUnit + '" class="iosselect-header">',
- '<h2 id="iosSelectTitle"></h2>',
- '<a style="height: ' + this.options.headerHeight + this.options.cssUnit + '; line-height: ' + this.options.headerHeight + this.options.cssUnit + '" href="javascript:void(0)" class="close">取消</a>',
- '<a style="height: ' + this.options.headerHeight + this.options.cssUnit + '; line-height: ' + this.options.headerHeight + this.options.cssUnit + '" href="javascript:void(0)" class="sure">确定</a>',
- '</header>',
- '<section class="iosselect-box">',
- '<div class="one-level-contain" id="oneLevelContain">',
- '<ul class="select-one-level">',
- '</ul>',
- '</div>',
- '<div class="two-level-contain" id="twoLevelContain">',
- '<ul class="select-two-level">',
- '</ul>',
- '</div>',
- '<div class="three-level-contain" id="threeLevelContain">',
- '<ul class="select-three-level">',
- '</ul>',
- '</div>',
- '<div class="four-level-contain" id="fourLevelContain">',
- '<ul class="select-four-level">',
- '</ul>',
- '</div>',
- '<div class="five-level-contain" id="fiveLevelContain">',
- '<ul class="select-five-level">',
- '</ul>',
- '</div>',
- '</section>',
- '<hr class="cover-area1"/>',
- '<hr class="cover-area2"/>',
- // '<div class="time-fuhao">-</div>',
- '<div class="ios-select-loading-box" id="iosSelectLoadingBox">',
- '<div class="ios-select-loading"></div>',
- '</div>'
- ].join('\r\n');
- this.iosSelectLayer = new Layer(all_html, {
- className: 'ios-select-widget-box ' + this.typeBox + (this.options.addClassName? ' ' + this.options.addClassName: ''),
- container: this.options.container || ''
- });
- this.iosSelectTitleDom = this.iosSelectLayer.el.querySelector('#iosSelectTitle');
- this.iosSelectLoadingBoxDom = this.iosSelectLayer.el.querySelector('#iosSelectLoadingBox');
- if (this.options.title) {
- this.iosSelectTitleDom.innerHTML = this.options.title;
- }
- if (this.options.headerHeight && this.options.itemHeight) {
- this.coverArea1Dom = this.iosSelectLayer.el.querySelector('.cover-area1');
- this.coverArea1Dom.style.top = this.options.headerHeight + this.options.itemHeight * this.options.coverArea1Top + this.options.cssUnit;
- this.coverArea2Dom = this.iosSelectLayer.el.querySelector('.cover-area2');
- this.coverArea2Dom.style.top = this.options.headerHeight + this.options.itemHeight * this.options.coverArea2Top + this.options.cssUnit;
- }
- this.oneLevelContainDom = this.iosSelectLayer.el.querySelector('#oneLevelContain');
- this.twoLevelContainDom = this.iosSelectLayer.el.querySelector('#twoLevelContain');
- this.threeLevelContainDom = this.iosSelectLayer.el.querySelector('#threeLevelContain');
- this.fourLevelContainDom = this.iosSelectLayer.el.querySelector('#fourLevelContain');
- this.fiveLevelContainDom = this.iosSelectLayer.el.querySelector('#fiveLevelContain');
- this.oneLevelUlContainDom = this.iosSelectLayer.el.querySelector('.select-one-level');
- this.twoLevelUlContainDom = this.iosSelectLayer.el.querySelector('.select-two-level');
- this.threeLevelUlContainDom = this.iosSelectLayer.el.querySelector('.select-three-level');
- this.fourLevelUlContainDom = this.iosSelectLayer.el.querySelector('.select-four-level');
- this.fiveLevelUlContainDom = this.iosSelectLayer.el.querySelector('.select-five-level');
- this.iosSelectLayer.el.querySelector('.layer').style.height = this.options.itemHeight * this.options.itemShowCount + this.options.headerHeight + this.options.cssUnit;
- this.oneLevelContainDom.style.height = this.options.itemHeight * this.options.itemShowCount + this.options.cssUnit;
- this.offsetTop = document.body.scrollTop;
- document.body.classList.add('ios-select-body-class');
- window.scrollTo(0, 0);
- this.scrollOne = new IScroll('#oneLevelContain', {
- probeType: 3,
- bounce: false
- });
- this.scrollOne.on('scrollStart', function() {
- Array.prototype.slice.call(self.oneLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- });
- this.scrollOne.on('scroll', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- plast = Math.round(pa) + 1;
- Array.prototype.slice.call(self.oneLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- self.changeClassName(self.oneLevelContainDom, plast);
- });
- this.scrollOne.on('scrollEnd', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollOne.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.oneLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.oneLevelContainDom, plast);
- self.selectOneObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level > 1 && self.options.oneTwoRelation === 1) {
- self.setTwoLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- this.scrollOne.on('scrollCancel', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollOne.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.oneLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.oneLevelContainDom, plast);
- self.selectOneObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level > 1 && self.options.oneTwoRelation === 1) {
- self.setTwoLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- if (this.level >= 2) {
- this.twoLevelContainDom.style.height = this.options.itemHeight * this.options.itemShowCount + this.options.cssUnit;
- this.scrollTwo = new IScroll('#twoLevelContain', {
- probeType: 3,
- bounce: false
- });
- this.scrollTwo.on('scrollStart', function() {
- Array.prototype.slice.call(self.twoLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- });
- this.scrollTwo.on('scroll', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 0;
- plast = Math.round(pa) + 1;
- Array.prototype.slice.call(self.twoLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- self.changeClassName(self.twoLevelContainDom, plast);
- });
- this.scrollTwo.on('scrollEnd', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollTwo.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.twoLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.twoLevelContainDom, plast);
- self.selectTwoObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level > 2 && self.options.twoThreeRelation === 1) {
- self.setThreeLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- this.scrollTwo.on('scrollCancel', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollTwo.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.twoLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.twoLevelContainDom, plast);
- self.selectTwoObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level > 2 && self.options.twoThreeRelation === 1) {
- self.setThreeLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- }
- if (this.level >= 3) {
- this.threeLevelContainDom.style.height = this.options.itemHeight * this.options.itemShowCount + this.options.cssUnit;
- this.scrollThree = new IScroll('#threeLevelContain', {
- probeType: 3,
- bounce: false
- });
- this.scrollThree.on('scrollStart', function() {
- Array.prototype.slice.call(self.threeLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- });
- this.scrollThree.on('scroll', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 0;
- plast = Math.round(pa) + 1;
- Array.prototype.slice.call(self.threeLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- self.changeClassName(self.threeLevelContainDom, plast);
- });
- this.scrollThree.on('scrollEnd', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollThree.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.threeLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.threeLevelContainDom, plast);
- self.selectThreeObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level >= 4 && self.options.threeFourRelation === 1) {
- self.setFourLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- this.scrollThree.on('scrollCancel', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollThree.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.threeLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.threeLevelContainDom, plast);
- self.selectThreeObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level >= 4 && self.options.threeFourRelation === 1) {
- self.setFourLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- }
- if (this.level >= 4) {
- this.fourLevelContainDom.style.height = this.options.itemHeight * this.options.itemShowCount + this.options.cssUnit;
- this.scrollFour = new IScroll('#fourLevelContain', {
- probeType: 3,
- bounce: false
- });
- this.scrollFour.on('scrollStart', function() {
- Array.prototype.slice.call(self.fourLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- });
- this.scrollFour.on('scroll', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 0;
- plast = Math.round(pa) + 1;
- Array.prototype.slice.call(self.fourLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- self.changeClassName(self.fourLevelContainDom, plast);
- });
- this.scrollFour.on('scrollEnd', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollFour.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.fourLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.fourLevelContainDom, plast);
- self.selectFourObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level >= 5 && self.options.fourFiveRelation === 1) {
- self.setFiveLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- this.scrollFour.on('scrollCancel', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollFour.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.fourLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.fourLevelContainDom, plast);
- self.selectFourObj = iosSelectUtil.attrToData(pdom, plast);
- if (self.level >= 5 && self.options.fourFiveRelation === 1) {
- self.setFiveLevel(self.selectOneObj.id, self.selectTwoObj.id, self.selectThreeObj.id, self.selectFourObj.id, self.selectFiveObj.id);
- }
- });
- }
- if (this.level >= 5) {
- this.fiveLevelContainDom.style.height = this.options.itemHeight * this.options.itemShowCount + this.options.cssUnit;
- this.scrollFive = new IScroll('#fiveLevelContain', {
- probeType: 3,
- bounce: false
- });
- this.scrollFive.on('scrollStart', function() {
- Array.prototype.slice.call(self.fiveLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- });
- this.scrollFive.on('scroll', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 0;
- plast = Math.round(pa) + 1;
- Array.prototype.slice.call(self.fiveLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- self.changeClassName(self.fiveLevelContainDom, plast);
- });
- this.scrollFive.on('scrollEnd', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollFive.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.fiveLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.fiveLevelContainDom, plast);
- self.selectFiveObj = iosSelectUtil.attrToData(pdom, plast);
- });
- this.scrollFive.on('scrollCancel', function() {
- var pa = Math.abs(this.y / self.baseSize) / self.options.itemHeight;
- var plast = 1;
- var to = 0;
- if (Math.ceil(pa) === Math.round(pa)) {
- to = Math.ceil(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.ceil(pa) + 1;
- } else {
- to = Math.floor(pa) * self.options.itemHeight * self.baseSize;
- plast = Math.floor(pa) + 1;
- }
- self.scrollFive.scrollTo(0, -to, 0);
- Array.prototype.slice.call(self.fiveLevelContainDom.querySelectorAll('li')).forEach(function(v, i, o) {
- if (v.classList.contains('at')) {
- v.classList.remove('at');
- } else if (v.classList.contains('side1')) {
- v.classList.remove('side1');
- } else if (v.classList.contains('side2')) {
- v.classList.remove('side2');
- }
- });
- var pdom = self.changeClassName(self.fiveLevelContainDom, plast);
- self.selectFiveObj = iosSelectUtil.attrToData(pdom, plast);
- });
- }
- // 取消 确认 事件
- this.closeBtnDom = this.iosSelectLayer.el.querySelector('.close');
- this.closeBtnDom.addEventListener('click', function(e) {
- if (document.body.classList.contains('ios-select-body-class')) {
- document.body.classList.remove('ios-select-body-class');
- }
- window.scrollTo(0, self.offsetTop);
- });
- this.selectBtnDom = this.iosSelectLayer.el.querySelector('.sure');
- this.selectBtnDom.addEventListener('click', function(e) {
- if (document.body.classList.contains('ios-select-body-class')) {
- document.body.classList.remove('ios-select-body-class');
- }
- window.scrollTo(0, self.offsetTop);
- self.callback && self.callback(self.selectOneObj, self.selectTwoObj, self.selectThreeObj, self.selectFourObj, self.selectFiveObj);
- });
- },
- loadingShow: function() {
- this.options.showLoading && (this.iosSelectLoadingBoxDom.style.display = 'block');
- },
- loadingHide: function() {
- this.iosSelectLoadingBoxDom.style.display = 'none';
- },
- getOneLevel: function() {
- return this.data[0];
- },
- setOneLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId) {
- if (iosSelectUtil.isArray(this.data[0])){
- var oneLevelData = this.getOneLevel();
- this.renderOneLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, oneLevelData);
- }
- else if (iosSelectUtil.isFunction(this.data[0])) {
- this.loadingShow();
- this.data[0](function(oneLevelData) {
- this.loadingHide();
- this.renderOneLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, oneLevelData);
- }.bind(this));
- }
- else {
- throw new Error('data format error');
- }
- },
- renderOneLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, oneLevelData) {
- var hasAtId = oneLevelData.some(function(v, i, o) {
- return v.id == oneLevelId;
- });
- if (!hasAtId) {
- oneLevelId = oneLevelData[0]['id'];
- }
- var oneHtml = '';
- var self = this;
- var plast = 0;
- oneHtml += this.getWhiteItem();
- oneLevelData.forEach(function(v, i, o) {
- if (v.id == oneLevelId) {
- oneHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';" ' + iosSelectUtil.attrToHtml(v) + ' class="at">' + v.value + '</li>';
- plast = i + 1;
- } else {
- oneHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + '>' + v.value + '</li>';
- }
- }.bind(this));
- oneHtml += this.getWhiteItem();
- this.oneLevelUlContainDom.innerHTML = oneHtml;
- this.scrollOne.refresh();
- this.scrollOne.scrollToElement('li:nth-child(' + plast + ')', 0);
- if (this.level >= 2) {
- this.setTwoLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId);
- }
- var pdom = this.changeClassName(this.oneLevelContainDom, plast);
- this.selectOneObj = iosSelectUtil.attrToData(pdom, this.getAtIndexByPlast(plast));
- },
- getTwoLevel: function(oneLevelId) {
- var twoLevelData = [];
- if (this.options.oneTwoRelation === 1) {
- this.data[1].forEach(function(v, i, o) {
- if (v['parentId'] === oneLevelId) {
- twoLevelData.push(v);
- }
- });
- } else {
- twoLevelData = this.data[1];
- }
- return twoLevelData;
- },
- setTwoLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId) {
- if (iosSelectUtil.isArray(this.data[1])) {
- var twoLevelData = this.getTwoLevel(oneLevelId);
- this.renderTwoLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, twoLevelData);
- }
- else if (iosSelectUtil.isFunction(this.data[1])) {
- this.loadingShow();
- this.data[1](oneLevelId, function(twoLevelData) {
- this.loadingHide();
- this.renderTwoLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, twoLevelData);
- }.bind(this));
- }
- else {
- throw new Error('data format error');
- }
- },
- renderTwoLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, twoLevelData) {
- var plast = 0;
- var hasAtId = twoLevelData.some(function(v, i, o) {
- return v.id == twoLevelId;
- });
- if (!hasAtId) {
- twoLevelId = twoLevelData[0]['id'];
- }
- var twoHtml = '';
- var self = this;
- twoHtml += this.getWhiteItem();
- twoLevelData.forEach(function(v, i, o) {
- if (v.id == twoLevelId) {
- twoHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + ' class="at">' + v.value + '</li>';
- plast = i + 1;
- } else {
- twoHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + '>' + v.value + '</li>';
- }
- }.bind(this));
- twoHtml += this.getWhiteItem();
- this.twoLevelUlContainDom.innerHTML = twoHtml;
- this.scrollTwo.refresh();
- this.scrollTwo.scrollToElement(':nth-child(' + plast + ')', 0);
- if (this.level >= 3) {
- this.setThreeLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId);
- }
- var pdom = this.changeClassName(this.twoLevelContainDom, plast);
- this.selectTwoObj = iosSelectUtil.attrToData(pdom, this.getAtIndexByPlast(plast));
- },
- getThreeLevel: function(oneLevelId, twoLevelId) {
- var threeLevelData = [];
- if (this.options.twoThreeRelation === 1) {
- this.data[2].forEach(function(v, i, o) {
- if (v['parentId'] === twoLevelId) {
- threeLevelData.push(v);
- }
- });
- } else {
- threeLevelData = this.data[2];
- }
- return threeLevelData;
- },
- setThreeLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId) {
- if (iosSelectUtil.isArray(this.data[2])) {
- var threeLevelData = this.getThreeLevel(oneLevelId, twoLevelId);
- this.renderThreeLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, threeLevelData);
- }
- else if (iosSelectUtil.isFunction(this.data[2])) {
- this.loadingShow();
- this.data[2](oneLevelId, twoLevelId, function(threeLevelData) {
- this.loadingHide();
- this.renderThreeLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, threeLevelData);
- }.bind(this));
- }
- else {
- throw new Error('data format error');
- }
- },
- renderThreeLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, threeLevelData) {
- var plast = 0;
- var hasAtId = threeLevelData.some(function(v, i, o) {
- return v.id == threeLevelId;
- });
- if (!hasAtId) {
- threeLevelId = threeLevelData[0]['id'];
- }
- var threeHtml = '';
- var self = this;
- threeHtml += this.getWhiteItem();
- threeLevelData.forEach(function(v, i, o) {
- if (v.id == threeLevelId) {
- threeHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + ' class="at">' + v.value + '</li>';
- plast = i + 1;
- } else {
- threeHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + '>' + v.value + '</li>';
- }
- }.bind(this));
- threeHtml += this.getWhiteItem();
- this.threeLevelUlContainDom.innerHTML = threeHtml;
- this.scrollThree.refresh();
- this.scrollThree.scrollToElement(':nth-child(' + plast + ')', 0);
- if (this.level >= 4) {
- this.setFourLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId);
- }
- var pdom = this.changeClassName(this.threeLevelContainDom, plast);
- this.selectThreeObj = iosSelectUtil.attrToData(pdom, this.getAtIndexByPlast(plast));
- },
- getFourLevel: function(oneLevelId, twoLevelId, threeLevelId) {
- var fourLevelData = [];
- if (this.options.threeFourRelation === 1) {
- this.data[3].forEach(function(v, i, o) {
- if (v['parentId'] === threeLevelId) {
- fourLevelData.push(v);
- }
- });
- } else {
- fourLevelData = this.data[3];
- }
- return fourLevelData;
- },
- setFourLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId) {
- if (iosSelectUtil.isArray(this.data[3])) {
- var fourLevelData = this.getFourLevel(oneLevelId, twoLevelId, threeLevelId);
- this.renderFourLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fourLevelData);
- }
- else if (iosSelectUtil.isFunction(this.data[3])) {
- this.loadingShow();
- this.data[3](oneLevelId, twoLevelId, threeLevelId, function(fourLevelData) {
- this.loadingHide();
- this.renderFourLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fourLevelData);
- }.bind(this));
- }
- else {
- throw new Error('data format error');
- }
- },
- renderFourLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fourLevelData) {
- var plast = 0;
- var hasAtId = fourLevelData.some(function(v, i, o) {
- return v.id == fourLevelId;
- });
- if (!hasAtId) {
- fourLevelId = fourLevelData[0]['id'];
- }
- var fourHtml = '';
- var self = this;
- fourHtml += this.getWhiteItem();
- fourLevelData.forEach(function(v, i, o) {
- if (v.id == fourLevelId) {
- fourHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + ' class="at">' + v.value + '</li>';
- plast = i + 1;
- } else {
- fourHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + '>' + v.value + '</li>';
- }
- }.bind(this));
- fourHtml += this.getWhiteItem();
- this.fourLevelUlContainDom.innerHTML = fourHtml;
- this.scrollFour.refresh();
- this.scrollFour.scrollToElement(':nth-child(' + plast + ')', 0);
- if (this.level >= 5) {
- this.setFiveLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId);
- }
- var pdom = this.changeClassName(this.fourLevelContainDom, plast);
- this.selectFourObj = iosSelectUtil.attrToData(pdom, this.getAtIndexByPlast(plast));
- },
- getFiveLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId) {
- var fiveLevelData = [];
- if (this.options.fourFiveRelation === 1) {
- this.data[4].forEach(function(v, i, o) {
- if (v['parentId'] === fourLevelId) {
- fiveLevelData.push(v);
- }
- });
- } else {
- fiveLevelData = this.data[4];
- }
- return fiveLevelData;
- },
- setFiveLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId) {
- if (iosSelectUtil.isArray(this.data[4])) {
- var fiveLevelData = this.getFiveLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId);
- this.renderFiveLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fiveLevelData);
- }
- else if (iosSelectUtil.isFunction(this.data[4])) {
- this.loadingShow();
- this.data[4](oneLevelId, twoLevelId, threeLevelId, fourLevelId, function(fiveLevelData) {
- this.loadingHide();
- this.renderFiveLevel(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fiveLevelData);
- }.bind(this));
- }
- else {
- throw new Error('data format error');
- }
- },
- renderFiveLevel: function(oneLevelId, twoLevelId, threeLevelId, fourLevelId, fiveLevelId, fiveLevelData) {
- var plast = 0;
- var hasAtId = fiveLevelData.some(function(v, i, o) {
- return v.id == fiveLevelId;
- });
- if (!hasAtId) {
- fiveLevelId = fiveLevelData[0]['id'];
- }
- var fiveHtml = '';
- var self = this;
- fiveHtml += this.getWhiteItem();
- fiveLevelData.forEach(function(v, i, o) {
- if (v.id == fiveLevelId) {
- fiveHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + ' class="at">' + v.value + '</li>';
- plast = i + 1;
- } else {
- fiveHtml += '<li style="height: ' + this.options.itemHeight + this.options.cssUnit + '; line-height: ' + this.options.itemHeight + this.options.cssUnit +';"' + iosSelectUtil.attrToHtml(v) + '>' + v.value + '</li>';
- }
- }.bind(this));
- fiveHtml += this.getWhiteItem();
- this.fiveLevelUlContainDom.innerHTML = fiveHtml;
- this.scrollFive.refresh();
- this.scrollFive.scrollToElement(':nth-child(' + plast + ')', 0);
- var pdom = this.changeClassName(this.fiveLevelContainDom, plast);
- this.selectFiveObj = iosSelectUtil.attrToData(pdom, this.getAtIndexByPlast(plast));
- },
- getWhiteItem: function() {
- var whiteItemHtml = '';
- whiteItemHtml += '<li style="height: ' + this.options.itemHeight +this.options.cssUnit + '; line-height: ' + this.options.itemHeight +this.options.cssUnit + '"></li>';
- if (this.options.itemShowCount > 3) {
- whiteItemHtml += '<li style="height: ' + this.options.itemHeight +this.options.cssUnit + '; line-height: ' + this.options.itemHeight +this.options.cssUnit + '"></li>';
- }
- if (this.options.itemShowCount > 5) {
- whiteItemHtml += '<li style="height: ' + this.options.itemHeight +this.options.cssUnit + '; line-height: ' + this.options.itemHeight +this.options.cssUnit + '"></li>';
- }
- if (this.options.itemShowCount > 7) {
- whiteItemHtml += '<li style="height: ' + this.options.itemHeight +this.options.cssUnit + '; line-height: ' + this.options.itemHeight +this.options.cssUnit + '"></li>';
- }
- return whiteItemHtml;
- },
- changeClassName: function(levelContainDom, plast) {
- var pdom;
- if (this.options.itemShowCount === 3) {
- pdom = levelContainDom.querySelector('li:nth-child(' + (plast + 1) + ')');
- pdom.classList.add('at');
- }
- else if (this.options.itemShowCount === 5) {
- pdom = levelContainDom.querySelector('li:nth-child(' + (plast + 2) + ')');
- pdom.classList.add('at');
- levelContainDom.querySelector('li:nth-child(' + (plast + 1) + ')').classList.add('side1');
- levelContainDom.querySelector('li:nth-child(' + (plast + 3) + ')').classList.add('side1');
- }
- else if (this.options.itemShowCount === 7) {
- pdom = levelContainDom.querySelector('li:nth-child(' + (plast + 3) + ')');
- pdom.classList.add('at');
- levelContainDom.querySelector('li:nth-child(' + (plast + 2) + ')').classList.add('side1');
- levelContainDom.querySelector('li:nth-child(' + (plast + 1) + ')').classList.add('side2');
- levelContainDom.querySelector('li:nth-child(' + (plast + 4) + ')').classList.add('side1');
- levelContainDom.querySelector('li:nth-child(' + (plast + 5) + ')').classList.add('side2');
- }
- else if (this.options.itemShowCount === 9) {
- pdom = levelContainDom.querySelector('li:nth-child(' + (plast + 4) + ')');
- pdom.classList.add('at');
- levelContainDom.querySelector('li:nth-child(' + (plast + 3) + ')').classList.add('side1');
- levelContainDom.querySelector('li:nth-child(' + (plast + 2) + ')').classList.add('side2');
- levelContainDom.querySelector('li:nth-child(' + (plast + 5) + ')').classList.add('side1');
- levelContainDom.querySelector('li:nth-child(' + (plast + 6) + ')').classList.add('side2');
- }
- return pdom;
- },
- getAtIndexByPlast: function(plast) {
- return plast + Math.ceil(this.options.itemShowCount / 2);
- },
- setBase: function() {
- if (this.options.cssUnit === 'rem') {
- var dltDom = document.documentElement;
- var dltStyle = window.getComputedStyle(dltDom, null);
- var dltFontSize = dltStyle.fontSize;
- try {
- this.baseSize = /\d+(?:\.\d+)?/.exec(dltFontSize)[0];
- }
- catch(e) {
- this.baseSize = 1;
- }
- }
- else {
- this.baseSize = 1;
- }
- }
- }
- if (typeof module != 'undefined' && module.exports) {
- module.exports = IosSelect;
- } else if (typeof define == 'function' && define.amd) {
- define(function() {
- return IosSelect;
- });
- } else {
- window.IosSelect = IosSelect;
- }
- })();
|