/*! * popoPicker.js v1.0 * https://po-po.github.io/popoPicker * Released under the MIT License. */ ;(function (window,document) { 'use strict'; function extend() { var name, options, src, copy; var length = arguments.length; var target = arguments[0]; for (var i = 1; i < length; i++) { options = arguments[i]; if (options != null) { for (name in options) { src = target[name]; copy = options[name]; if (copy !== undefined) { target[name] = copy; } } } } return target; } var popoPicker = function (el, option) { //触摸移动 var self = this; var option = extend({ wheels: [], container:'body', scrollType: '3d', background: 'light', display: "bottom", headTitle: '', init: function () {}, getResult: function () {}, save: function () {}, cancel: function () {} }, option); var clickTarget = document.querySelectorAll(el); var rows = 5; var itemHeight = 34; var itemSize2d = 9; var itemSize3d = 9; var scroll3dAngle = 360 / (itemSize3d * 2); var rs = { result: [], scrollIdx: null, scrollEvt: [] }; function getselectedIdx(wheel) { var index = 0; for (var i = 0; i < wheel.data.length; i++) { if (wheel.data[i].value == wheel.selected) { index = i; break; } else { index = 0; } } return index; } function generateItems(wheel, start, end, is3d) { var data = wheel.data; var html = '', value, display, len = data.length, infinite = wheel.infinite, selectedIdx = getselectedIdx(wheel); //选中的位置 start += selectedIdx; end += selectedIdx; for (var i = start; i <= end; i++) { var idx = (i < 0 ? len + (i % len) : i) % len; value = data[idx].value; display = data[idx].display; if (is3d) { var deg = 0; var show = "list-item"; deg = -(i - selectedIdx) * scroll3dAngle % 360; if (!infinite) { if (i < 0 || i > (len - 1)) { show = "none" } else { show = "list-item" } } html += '