From d78c6138518277eff4f2badb04d22a61f5b62ffe Mon Sep 17 00:00:00 2001 From: AsiaCobra Date: Thu, 3 Oct 2024 14:47:08 +0630 Subject: [PATCH 1/4] Added AM/PM format --- src/index.html | 12 +++++++++--- src/index.js | 20 ++++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/index.html b/src/index.html index 1034e65..d02d185 100644 --- a/src/index.html +++ b/src/index.html @@ -48,7 +48,7 @@

rolldate 多格式、功能强大的移动端日期选择插件

支持格式:(无限制)

规则:年-YYYY 月-MM 日-DD 时-hh 分-mm 秒-ss 使用/、-、空格、:之一分隔,可以随意组合

-

例:YYYY-MM、YYYY-MM-DD、YYYY-MM-DD hh:mm、YYYY-MM-DD hh:mm:ss、YYYY、MM、DD、hh:mm、hh:mm:ss、YYYY-MM-DD hh、hh、mm、ss、YYYY/DD...

+

例:YYYY-MM、YYYY-MM-DD、YYYY-MM-DD hh:mm、YYYY-MM-DD hh:mm:ss A、YYYY、MM、DD、hh:mm、hh:mm:ss A、YYYY-MM-DD hh、hh、mm、ss、YYYY/DD...

@@ -76,7 +76,7 @@

支持格式:(无限制)

- +
@@ -230,7 +230,13 @@

其他示例

}) new Rolldate({ el: '#date-group1-7', - format: 'hh:mm:ss' + format: 'hh:mm:ss A', + lang: { + title: 'Select Time', cancel: 'Cancel', confirm: 'Confirm', + year: 'year', month: ' Month ', day: ' day ', hour: ' hour ', min: ' minute ', sec: ' second ', + am: 'AM', pm:'PM' + + } }) new Rolldate({ el: '#date-group1-8', diff --git a/src/index.js b/src/index.js index f1123ad..e45a482 100644 --- a/src/index.js +++ b/src/index.js @@ -59,11 +59,12 @@ Rolldate.prototype = { DD:'rolldate-day', hh:'rolldate-hour', mm:'rolldate-min', - ss:'rolldate-sec' + ss:'rolldate-sec', + A: 'rolldate-ampm' // Add this line }, opts:{//插件默认配置 el:'', - format:'YYYY-MM-DD', + format:'YYYY-MM-DD', // Add 'A' for AM/PM beginYear:2000, endYear:2100, init:null, @@ -72,7 +73,7 @@ Rolldate.prototype = { cancel:null, minStep:1, trigger:'tap', - lang:{title:'选择日期', cancel:'取消', confirm:'确认', year:'年', month:'月', day:'日', hour:'时', min:'分', sec:'秒'} + lang:{title:'选择日期', cancel:'取消', confirm:'确认', year:'年', month:'月', day:'日', hour:'时', min:'分', sec:'秒', am:'上午', pm:'下午'} // Add AM/PM } }; }, @@ -152,6 +153,11 @@ Rolldate.prototype = { ul += `
  • ${o<10? '0'+o : o}${lang.sec}
  • `; domMndex ++; } + } else if(f == 'A'){ // Add AM/PM selection + ['AM', 'PM'].forEach((period, index) => { + itemClass = (date.getHours() < 12 && period === 'AM') || (date.getHours() >= 12 && period === 'PM') ? 'active' : ''; + ul += `
  • ${lang[period.toLowerCase()]}
  • `; + }); } ul += '
    ' } @@ -210,6 +216,12 @@ Rolldate.prototype = { _this.scroll['DD'].refresh(); } } + + // Add When scrolling ends for hour, update AM/PM + if(that.wrapper.id === domId['hh'] && _this.scroll['A']){ + const period = parseInt( _this.scroll['hh'].selectedIndex ) < 12 ? 0 : 1; + _this.scroll['A'].wheelTo(period); + } }) } @@ -384,7 +396,7 @@ Rolldate.prototype = { }, 300); }, getSelected: function(scroll){ - return $('#'+scroll.wrapper.id+' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, ''); + return $('#'+scroll.wrapper.id+' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, '') || $('#'+scroll.wrapper.id+' li', 1)[scroll.getSelectedIndex()].innerText; } } Rolldate.version = version; From 52935d638f1bde7d164bc9f580527501e1556370 Mon Sep 17 00:00:00 2001 From: AsiaCobra Date: Thu, 3 Oct 2024 15:23:37 +0630 Subject: [PATCH 2/4] updated package and readme --- README.md | 46 +++++++++++++++++++++++++++++++--------------- package.json | 8 ++++---- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index a66b270..b213bd6 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,42 @@ # rolldate [![npm](https://img.shields.io/npm/v/rolldate.svg)](https://www.npmjs.com/package/rolldate) [![npm](https://img.shields.io/npm/dm/rolldate.svg)](https://www.npmjs.com/package/rolldate) -此插件为[jquery-date](https://github.com/weijhfly/jqueryDatePlugin "jquery-date")的全新版本,主要为了解决旧版参数设计不够合理、滑动效率不高、依赖jquery、没有可选的主题风格等问题,并增加了回调函数,使插件有更大的灵活性。 -## 2019/05/24 3.0版本更新 -上一个版本为2.1.5, 新版本(从3.0.0开始)的改动: -1. 使用方式由new rolldate.Date改为new Rolldate; -2. 回调函数调整:tapBefore更名为init,confirmBefore更名为confirm,取消confirmEnd,增加cancel; -3. 日期格式(format)调整为无限制,可根据规则随意组合; +This plugin is a new version of [jquery-date](https://github.com/weijhfly/jqueryDatePlugin "jquery-date"), primarily designed to address issues such as unreasonable parameter design, low scrolling efficiency, dependency on jQuery, lack of optional theme styles, etc. It also introduces callback functions for greater flexibility. -## 2019/02/03重要版本更新 -上一个版本为1.5.1, 新版本(从2.0.0开始)与此前版本的不同之处: +## Version 3.0 Update (2019/05/24) -1. 将滑动插件由iscroll替换为better-scroll,提升了兼容性; -2. 改变了界面风格,操作更加方便; -3. 取消了rolldate.css文件,只需引入js即可; -4. 移除了主题风格、日期初始化的滑动时间设置; +The previous version was 2.1.5. Changes in the new version (starting from 3.0.0): -注意2.0.0之前的版本将不再维护,如有需要请访问:[旧版rolldate](https://weijhfly.github.io/rolldate-index2.html "rolldate") -## 演示 -[rolldate](https://weijhfly.github.io/rolldate-index.html "rolldate")(下方直接扫码即可体验) +1. The usage changed from `new rolldate.Date` to `new Rolldate`. +2. Callback functions were adjusted: `tapBefore` renamed to `init`, `confirmBefore` renamed to `confirm`, `confirmEnd` removed, and `cancel` added. +3. The date format (format) is now unrestricted and can be freely combined according to rules. + +## Important Version Update (2019/02/03) + +The previous version was 1.5.1. The new version (starting from 2.0.0) differs from earlier versions in the following ways: + +1. Replaced the scrolling plugin from iscroll to better-scroll, improving compatibility. +2. Changed the interface style for easier operation. +3. Removed the `rolldate.css` file; only the JS file needs to be included. +4. Removed theme styles and sliding time settings for date initialization. + +**Note**: Versions prior to 2.0.0 will no longer be maintained. For previous versions, please visit: [Old rolldate](https://weijhfly.github.io/rolldate-index2.html "rolldate") + +## Demo + +Experience the [rolldate](https://weijhfly.github.io/rolldate-index.html "rolldate") (scan the QR code below for a direct experience): ![rolldate](https://weijhfly.github.io/images/rolldate-demo.jpg) +## Usage + +### ES6 +```js +import Rolldate from 'rolldate'; +new Rolldate({ + el: '#date' +}); + + ## 使用方式 ### es6 ```js diff --git a/package.json b/package.json index b1b0080..caafd3e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "rolldate", + "name": "rolldate-nhs", "version": "3.1.3", - "description": "rolldate 多格式、功能强大的移动端日期选择插件", + "description": "rolldate: A versatile and powerful mobile date picker plugin", "main": "dist/rolldate.min.js", "scripts": { "dev": "cross-env NODE_ENV=development webpack-dev-server --config config/rolldate.config.js --mode development", @@ -16,9 +16,9 @@ ], "repository": { "type": "git", - "url": "https://github.com/weijhfly/rolldate" + "url": "https://github.com/AsiaCobra/rolldate" }, - "author": "雾空", + "author": "nayhtetsoe", "license": "MIT", "dependencies": {}, "devDependencies": { From ffcb938671b24e8cd72a32379ffdc96feb065aef Mon Sep 17 00:00:00 2001 From: AsiaCobra Date: Thu, 3 Oct 2024 15:25:43 +0630 Subject: [PATCH 3/4] npm build --- dist/rolldate.cjs.js | 30 +++++++++++++++++++++--------- dist/rolldate.es.js | 30 +++++++++++++++++++++--------- dist/rolldate.js | 30 +++++++++++++++++++++--------- dist/rolldate.min.js | 7 +++---- 4 files changed, 66 insertions(+), 31 deletions(-) diff --git a/dist/rolldate.cjs.js b/dist/rolldate.cjs.js index 88c28e5..267e943 100644 --- a/dist/rolldate.cjs.js +++ b/dist/rolldate.cjs.js @@ -1,11 +1,10 @@ -/** +/** * Rolldate 3.1.3 - * Copyright 2018-2020 + * Copyright 2018-2024 * weijhfly https://github.com/weijhfly/rolldate * Licensed under MIT * Released on: aug 4, 2018 */ - 'use strict'; function styleInject(css, ref) { @@ -35,7 +34,7 @@ function styleInject(css, ref) { } } -var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.rolldate-container .rolldate-wrapper>div{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:173px;line-height:36px;overflow:hidden;-webkit-flex-basis:-8e;-ms-flex-preferred-size:-8e;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:-o-linear-gradient(bottom,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));background:-webkit-gradient(linear, left bottom, left top, from(hsla(0, 0%, 100%, 0.4)), to(hsla(0, 0%, 100%, 0.8)));background:-o-linear-gradient(bottom, hsla(0, 0%, 100%, 0.4), hsla(0, 0%, 100%, 0.8));background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; +var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:flex}.rolldate-container .rolldate-wrapper>div{flex:1;height:173px;line-height:36px;overflow:hidden;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; styleInject(css); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -115,11 +114,12 @@ Rolldate.prototype = { DD: 'rolldate-day', hh: 'rolldate-hour', mm: 'rolldate-min', - ss: 'rolldate-sec' + ss: 'rolldate-sec', + A: 'rolldate-ampm' // Add this line }, opts: { //插件默认配置 el: '', - format: 'YYYY-MM-DD', + format: 'YYYY-MM-DD', // Add 'A' for AM/PM beginYear: 2000, endYear: 2100, init: null, @@ -128,8 +128,8 @@ Rolldate.prototype = { cancel: null, minStep: 1, trigger: 'tap', - lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒' } - } + lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒', am: '上午', pm: '下午' // Add AM/PM + } } }; }, extend: function extend(config) { @@ -208,6 +208,12 @@ Rolldate.prototype = { ul += '
  • ' + (o < 10 ? '0' + o : o) + lang.sec + '
  • '; domMndex++; } + } else if (f == 'A') { + // Add AM/PM selection + ['AM', 'PM'].forEach(function (period, index) { + itemClass = date.getHours() < 12 && period === 'AM' || date.getHours() >= 12 && period === 'PM' ? 'active' : ''; + ul += '
  • ' + lang[period.toLowerCase()] + '
  • '; + }); } ul += '
    '; } @@ -252,6 +258,12 @@ Rolldate.prototype = { _this.scroll['DD'].refresh(); } } + + // Add When scrolling ends for hour, update AM/PM + if (that.wrapper.id === domId['hh'] && _this.scroll['A']) { + var period = parseInt(_this.scroll['hh'].selectedIndex) < 12 ? 0 : 1; + _this.scroll['A'].wheelTo(period); + } }); }; @@ -436,7 +448,7 @@ Rolldate.prototype = { }, 300); }, getSelected: function getSelected(scroll) { - return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, ''); + return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, '') || $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText; } }; Rolldate.version = version; diff --git a/dist/rolldate.es.js b/dist/rolldate.es.js index 3e1fb94..85e207c 100644 --- a/dist/rolldate.es.js +++ b/dist/rolldate.es.js @@ -1,11 +1,10 @@ -/** +/** * Rolldate 3.1.3 - * Copyright 2018-2020 + * Copyright 2018-2024 * weijhfly https://github.com/weijhfly/rolldate * Licensed under MIT * Released on: aug 4, 2018 */ - function styleInject(css, ref) { if ( ref === void 0 ) ref = {}; var insertAt = ref.insertAt; @@ -33,7 +32,7 @@ function styleInject(css, ref) { } } -var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.rolldate-container .rolldate-wrapper>div{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:173px;line-height:36px;overflow:hidden;-webkit-flex-basis:-8e;-ms-flex-preferred-size:-8e;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:-o-linear-gradient(bottom,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));background:-webkit-gradient(linear, left bottom, left top, from(hsla(0, 0%, 100%, 0.4)), to(hsla(0, 0%, 100%, 0.8)));background:-o-linear-gradient(bottom, hsla(0, 0%, 100%, 0.4), hsla(0, 0%, 100%, 0.8));background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; +var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:flex}.rolldate-container .rolldate-wrapper>div{flex:1;height:173px;line-height:36px;overflow:hidden;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; styleInject(css); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -113,11 +112,12 @@ Rolldate.prototype = { DD: 'rolldate-day', hh: 'rolldate-hour', mm: 'rolldate-min', - ss: 'rolldate-sec' + ss: 'rolldate-sec', + A: 'rolldate-ampm' // Add this line }, opts: { //插件默认配置 el: '', - format: 'YYYY-MM-DD', + format: 'YYYY-MM-DD', // Add 'A' for AM/PM beginYear: 2000, endYear: 2100, init: null, @@ -126,8 +126,8 @@ Rolldate.prototype = { cancel: null, minStep: 1, trigger: 'tap', - lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒' } - } + lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒', am: '上午', pm: '下午' // Add AM/PM + } } }; }, extend: function extend(config) { @@ -206,6 +206,12 @@ Rolldate.prototype = { ul += '
  • ' + (o < 10 ? '0' + o : o) + lang.sec + '
  • '; domMndex++; } + } else if (f == 'A') { + // Add AM/PM selection + ['AM', 'PM'].forEach(function (period, index) { + itemClass = date.getHours() < 12 && period === 'AM' || date.getHours() >= 12 && period === 'PM' ? 'active' : ''; + ul += '
  • ' + lang[period.toLowerCase()] + '
  • '; + }); } ul += '
    '; } @@ -250,6 +256,12 @@ Rolldate.prototype = { _this.scroll['DD'].refresh(); } } + + // Add When scrolling ends for hour, update AM/PM + if (that.wrapper.id === domId['hh'] && _this.scroll['A']) { + var period = parseInt(_this.scroll['hh'].selectedIndex) < 12 ? 0 : 1; + _this.scroll['A'].wheelTo(period); + } }); }; @@ -434,7 +446,7 @@ Rolldate.prototype = { }, 300); }, getSelected: function getSelected(scroll) { - return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, ''); + return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, '') || $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText; } }; Rolldate.version = version; diff --git a/dist/rolldate.js b/dist/rolldate.js index d8c2174..d57b956 100644 --- a/dist/rolldate.js +++ b/dist/rolldate.js @@ -1,11 +1,10 @@ -/** +/** * Rolldate 3.1.3 - * Copyright 2018-2020 + * Copyright 2018-2024 * weijhfly https://github.com/weijhfly/rolldate * Licensed under MIT * Released on: aug 4, 2018 */ - (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : @@ -39,7 +38,7 @@ } } - var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.rolldate-container .rolldate-wrapper>div{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:173px;line-height:36px;overflow:hidden;-webkit-flex-basis:-8e;-ms-flex-preferred-size:-8e;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:-o-linear-gradient(bottom,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));background:-webkit-gradient(linear, left bottom, left top, from(hsla(0, 0%, 100%, 0.4)), to(hsla(0, 0%, 100%, 0.8)));background:-o-linear-gradient(bottom, hsla(0, 0%, 100%, 0.4), hsla(0, 0%, 100%, 0.8));background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; + var css = ".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:flex}.rolldate-container .rolldate-wrapper>div{flex:1;height:173px;line-height:36px;overflow:hidden;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}"; styleInject(css); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -119,11 +118,12 @@ DD: 'rolldate-day', hh: 'rolldate-hour', mm: 'rolldate-min', - ss: 'rolldate-sec' + ss: 'rolldate-sec', + A: 'rolldate-ampm' // Add this line }, opts: { //插件默认配置 el: '', - format: 'YYYY-MM-DD', + format: 'YYYY-MM-DD', // Add 'A' for AM/PM beginYear: 2000, endYear: 2100, init: null, @@ -132,8 +132,8 @@ cancel: null, minStep: 1, trigger: 'tap', - lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒' } - } + lang: { title: '选择日期', cancel: '取消', confirm: '确认', year: '年', month: '月', day: '日', hour: '时', min: '分', sec: '秒', am: '上午', pm: '下午' // Add AM/PM + } } }; }, extend: function extend(config) { @@ -212,6 +212,12 @@ ul += '
  • ' + (o < 10 ? '0' + o : o) + lang.sec + '
  • '; domMndex++; } + } else if (f == 'A') { + // Add AM/PM selection + ['AM', 'PM'].forEach(function (period, index) { + itemClass = date.getHours() < 12 && period === 'AM' || date.getHours() >= 12 && period === 'PM' ? 'active' : ''; + ul += '
  • ' + lang[period.toLowerCase()] + '
  • '; + }); } ul += '
    '; } @@ -256,6 +262,12 @@ _this.scroll['DD'].refresh(); } } + + // Add When scrolling ends for hour, update AM/PM + if (that.wrapper.id === domId['hh'] && _this.scroll['A']) { + var period = parseInt(_this.scroll['hh'].selectedIndex) < 12 ? 0 : 1; + _this.scroll['A'].wheelTo(period); + } }); }; @@ -440,7 +452,7 @@ }, 300); }, getSelected: function getSelected(scroll) { - return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, ''); + return $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText.replace(/\D/g, '') || $('#' + scroll.wrapper.id + ' li', 1)[scroll.getSelectedIndex()].innerText; } }; Rolldate.version = version; diff --git a/dist/rolldate.min.js b/dist/rolldate.min.js index e4ab84a..d44572a 100644 --- a/dist/rolldate.min.js +++ b/dist/rolldate.min.js @@ -1,9 +1,8 @@ -/** +/** * Rolldate 3.1.3 - * Copyright 2018-2020 + * Copyright 2018-2024 * weijhfly https://github.com/weijhfly/rolldate * Licensed under MIT * Released on: aug 4, 2018 */ - -!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t=t||self).Rolldate=i()}(this,function(){"use strict";!function(t,i){void 0===i&&(i={});var e=i.insertAt;if(t&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===e&&o.firstChild?o.insertBefore(s,o.firstChild):o.appendChild(s),s.styleSheet?s.styleSheet.cssText=t:s.appendChild(document.createTextNode(t))}}(".rolldate-container{font-size:20px;color:#333;text-align:center}.rolldate-container ul{margin:0;padding:0}.rolldate-container li{list-style-type:none}.rolldate-container header{position:relative;line-height:60px;font-size:18px;border-bottom:1px solid #e0e0e0}.rolldate-container .rolldate-mask{position:fixed;width:100%;height:100%;top:0;left:0;z-index:999;background-color:rgba(37,38,45,.4)}.rolldate-container .rolldate-panel{position:fixed;bottom:0;left:0;width:100%;height:273px;z-index:1000;background:#fff;-webkit-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}.rolldate-container .rolldate-btn{position:absolute;left:0;top:0;height:100%;padding:0 15px;color:#666;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rolldate-container .rolldate-confirm{left:auto;right:0;color:#007bff}.rolldate-container .rolldate-content{position:relative;top:20px}.rolldate-container .rolldate-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.rolldate-container .rolldate-wrapper>div{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;height:173px;line-height:36px;overflow:hidden;-webkit-flex-basis:-8e;-ms-flex-preferred-size:-8e;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:-o-linear-gradient(bottom,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));background:-webkit-gradient(linear, left bottom, left top, from(hsla(0, 0%, 100%, 0.4)), to(hsla(0, 0%, 100%, 0.8)));background:-o-linear-gradient(bottom, hsla(0, 0%, 100%, 0.4), hsla(0, 0%, 100%, 0.8));background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}");"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function S(t,i){return"string"!=typeof t&&t.nodeType?t:i?document.querySelectorAll(t):document.querySelector(t)}var t,Y=(function(t,i){t.exports=function(){function s(t,i){for(;i+1this.minScrollX||this.xthis.minScrollY||this.ythis.options.momentumLimitTime&&nn+this.options.directionLockThreshold?this.directionLocked="h":n>=s+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"===this.directionLocked){if("vertical"===this.options.eventPassthrough)t.preventDefault();else if("horizontal"===this.options.eventPassthrough)return void(this.initiated=!1);o=0}else if("v"===this.directionLocked){if("horizontal"===this.options.eventPassthrough)t.preventDefault();else if("vertical"===this.options.eventPassthrough)return void(this.initiated=!1);e=0}e=this.hasHorizontalScroll?e:0,o=this.hasVerticalScroll?o:0,this.movingDirectionX=0this.minScrollX||athis.minScrollX&&d||athis.minScrollX?this.minScrollX:this.maxScrollX),(l>this.minScrollY||lthis.minScrollY&&h||lthis.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger("scrollStart")),this._translate(a,l),r-this.startTime>this.options.momentumLimitTime&&(this.startTime=r,this.startX=this.x,this.startY=this.y,1===this.options.probeType&&this.trigger("scroll",{x:this.x,y:this.y})),1document.documentElement.clientWidth-this.options.momentumLimitDistance||vdocument.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},L.prototype._end=function(t){if(this.enabled&&!this.destroyed&&T[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!Y(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger("touchEnd",{x:this.x,y:this.y}),this.isInTransition=!1;var i=Math.round(this.x),e=Math.round(this.y),o=i-this.absStartX,s=e-this.absStartY;if(this.directionX=0this.options.momentumLimitDistance||r>this.options.momentumLimitDistance)){var h=!1,c=!1,d=!1,p=!1,u=this.options.bounce;!1!==u&&(h=void 0===u.top||u.top,c=void 0===u.bottom||u.bottom,d=void 0===u.left||u.left,p=void 0===u.right||u.right);var m=-1===this.directionX&&d||1===this.directionX&&p?this.wrapperWidth:0,f=-1===this.directionY&&h||1===this.directionY&&c?this.wrapperHeight:0,v=this.hasHorizontalScroll?_(this.x,this.startX,n,this.maxScrollX,this.minScrollX,m,this.options):{destination:i,duration:0},g=this.hasVerticalScroll?_(this.y,this.startY,n,this.maxScrollY,this.minScrollY,f,this.options):{destination:e,duration:0};i=v.destination,e=g.destination,l=Math.max(v.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(e=Math.round(e/this.itemHeight)*this.itemHeight,l=this.options.wheel.adjustTime||400);var w=X.swipe;if(this.options.snap){var y=this._nearestSnap(i,e);this.currentPage=y,l=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(i-y.x),1e3),Math.min(Math.abs(e-y.y),1e3)),300),i=y.x,e=y.y,this.directionX=0,this.directionY=0,w=this.options.snap.easing||X.bounce}if(i!==this.x||e!==this.y)return(i>this.minScrollX||ithis.minScrollY||ethis.minScrollY?this.selectedIndex=0:ithis.minScrollX?this.minScrollX:n.leftthis.minScrollY?this.minScrollY:n.topthis.minScrollX?e=this.minScrollX:othis.minScrollY?s=this.minScrollY:nthis.minScrollX?p=this.minScrollX:pthis.minScrollY?u=this.minScrollY:u
      ',"YYYY"==s)for(var p=r.beginYear;p<=r.endYear;p++)e+='
    • '+p+c.year+"
    • ",d++;else if("MM"==s)for(var u=1;u<=12;u++)e+='
    • '+(u<10?"0"+u:u)+c.month+"
    • ",d++;else if("DD"==s)for(var m=n.getMonthlyDay(h.getFullYear(),h.getMonth()+1),f=1;f<=m;f++)e+='
    • '+(f<10?"0"+f:f)+c.day+"
    • ",d++;else if("hh"==s)for(var v=0;v<=23;v++)e+='
    • '+(v<10?"0"+v:v)+c.hour+"
    • ",d++;else if("mm"==s)for(var g=0;g<=59;g+=r.minStep)e+='
    • '+(g<10?"0"+g:g)+c.min+"
    • ",d++;else if("ss"==s)for(var w=0;w<=59;w++)e+='
    • '+(w<10?"0"+w:w)+c.sec+"
    • ",d++;e+="
    "}var y='
    \n
    \n
    \n '+c.cancel+"\n "+c.title+'\n '+c.confirm+'\n
    \n
    \n
    \n
    \n
    \n '+e+"\n
    \n
    \n
    ",b=document.createElement("div");b.className="rolldate-container",b.innerHTML=y,document.body.appendChild(b),n.scroll={};for(var x=function(t){var i=a[l[t]];n.scroll[l[t]]=new Y("#"+i,{wheel:{selectedIndex:0}});var o=n.scroll[l[t]],e=S("#"+i+" .active"),s=e?e.getAttribute("data-index"):Math.round(h.getMinutes()/r.minStep);o.wheelTo(s),o.on("scrollEnd",function(){if(r.moveEnd&&r.moveEnd.call(n,o),-1!=[a.YYYY,a.MM].indexOf(o.wrapper.id)&&n.scroll.YYYY&&n.scroll.MM&&n.scroll.DD){var t=n.getMonthlyDay(n.getSelected(n.scroll.YYYY),n.getSelected(n.scroll.MM)),i="";if(t!=S("#"+a.DD+" li",1).length){for(var e=1;e<=t;e++)i+='
  • '+(e<10?"0"+e:e)+c.day+"
  • ";S("#"+a.DD+" ul").innerHTML=i,n.scroll.DD.refresh()}}})},T=0;Tdiv{flex:1;height:173px;line-height:36px;overflow:hidden;flex-basis:-8e;width:1%}.rolldate-container .rolldate-wrapper ul{margin-top:68px}.rolldate-container .rolldate-wrapper li{height:36px}.rolldate-container .rolldate-dim{position:absolute;left:0;top:0;width:100%;height:68px;background:linear-gradient(0deg,hsla(0,0%,100%,.4),hsla(0,0%,100%,.8));pointer-events:none;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10}.rolldate-container .mask-top{border-bottom:1px solid #ebebeb}.rolldate-container .mask-bottom{top:auto;bottom:1px;border-top:1px solid #ebebeb}.rolldate-container .fadeIn{-webkit-transform:translateZ(0);transform:translateZ(0)}.rolldate-container .fadeOut{-webkit-transform:translate3d(0,273px,0);transform:translate3d(0,273px,0)}@media screen and (max-width:414px){.rolldate-container{font-size:18px}}@media screen and (max-width:320px){.rolldate-container{font-size:15px}}");"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var t,Y=(function(t,i){t.exports=function(){function s(t,i){for(;i+1this.minScrollX||this.xthis.minScrollY||this.ythis.options.momentumLimitTime&&nn+this.options.directionLockThreshold?this.directionLocked="h":n>=s+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"===this.directionLocked){if("vertical"===this.options.eventPassthrough)t.preventDefault();else if("horizontal"===this.options.eventPassthrough)return void(this.initiated=!1);o=0}else if("v"===this.directionLocked){if("horizontal"===this.options.eventPassthrough)t.preventDefault();else if("vertical"===this.options.eventPassthrough)return void(this.initiated=!1);e=0}e=this.hasHorizontalScroll?e:0,o=this.hasVerticalScroll?o:0,this.movingDirectionX=0this.minScrollX||athis.minScrollX&&p||athis.minScrollX?this.minScrollX:this.maxScrollX),(l>this.minScrollY||lthis.minScrollY&&h||lthis.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger("scrollStart")),this._translate(a,l),r-this.startTime>this.options.momentumLimitTime&&(this.startTime=r,this.startX=this.x,this.startY=this.y,1===this.options.probeType&&this.trigger("scroll",{x:this.x,y:this.y})),1document.documentElement.clientWidth-this.options.momentumLimitDistance||vdocument.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},L.prototype._end=function(t){if(this.enabled&&!this.destroyed&&T[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!Y(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger("touchEnd",{x:this.x,y:this.y}),this.isInTransition=!1;var i=Math.round(this.x),e=Math.round(this.y),o=i-this.absStartX,s=e-this.absStartY;if(this.directionX=0this.options.momentumLimitDistance||r>this.options.momentumLimitDistance)){var h=!1,c=!1,p=!1,d=!1,u=this.options.bounce;!1!==u&&(h=void 0===u.top||u.top,c=void 0===u.bottom||u.bottom,p=void 0===u.left||u.left,d=void 0===u.right||u.right);var m=-1===this.directionX&&p||1===this.directionX&&d?this.wrapperWidth:0,f=-1===this.directionY&&h||1===this.directionY&&c?this.wrapperHeight:0,v=this.hasHorizontalScroll?E(this.x,this.startX,n,this.maxScrollX,this.minScrollX,m,this.options):{destination:i,duration:0},g=this.hasVerticalScroll?E(this.y,this.startY,n,this.maxScrollY,this.minScrollY,f,this.options):{destination:e,duration:0};i=v.destination,e=g.destination,l=Math.max(v.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(e=Math.round(e/this.itemHeight)*this.itemHeight,l=this.options.wheel.adjustTime||400);var w=X.swipe;if(this.options.snap){var y=this._nearestSnap(i,e);this.currentPage=y,l=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(i-y.x),1e3),Math.min(Math.abs(e-y.y),1e3)),300),i=y.x,e=y.y,this.directionX=0,this.directionY=0,w=this.options.snap.easing||X.bounce}if(i!==this.x||e!==this.y)return(i>this.minScrollX||ithis.minScrollY||ethis.minScrollY?this.selectedIndex=0:ithis.minScrollX?this.minScrollX:n.leftthis.minScrollY?this.minScrollY:n.topthis.minScrollX?e=this.minScrollX:othis.minScrollY?s=this.minScrollY:nthis.minScrollX?d=this.minScrollX:dthis.minScrollY?u=this.minScrollY:u
      ',"YYYY"==p)for(var u=r.beginYear;u<=r.endYear;u++)o=u==h.getFullYear()?"active":"",e+='
    • '+u+c.year+"
    • ",d++;else if("MM"==p)for(var m=1;m<=12;m++)o=m==h.getMonth()+1?"active":"",e+='
    • '+(m<10?"0"+m:m)+c.month+"
    • ",d++;else if("DD"==p)for(var f=n.getMonthlyDay(h.getFullYear(),h.getMonth()+1),v=1;v<=f;v++)o=v==h.getDate()?"active":"",e+='
    • '+(v<10?"0"+v:v)+c.day+"
    • ",d++;else if("hh"==p)for(var g=0;g<=23;g++)o=g==h.getHours()?"active":"",e+='
    • '+(g<10?"0"+g:g)+c.hour+"
    • ",d++;else if("mm"==p)for(var w=0;w<=59;w+=r.minStep)o=w==h.getMinutes()?"active":"",e+='
    • '+(w<10?"0"+w:w)+c.min+"
    • ",d++;else if("ss"==p)for(var y=0;y<=59;y++)o=y==h.getSeconds()?"active":"",e+='
    • '+(y<10?"0"+y:y)+c.sec+"
    • ",d++;else"A"==p&&["AM","PM"].forEach(function(t,i){o=h.getHours()<12&&"AM"===t||12<=h.getHours()&&"PM"===t?"active":"",e+='
    • '+c[t.toLowerCase()]+"
    • "});e+="
    "}var x='
    \n
    \n
    \n '+c.cancel+"\n "+c.title+'\n '+c.confirm+'\n
    \n
    \n
    \n
    \n
    \n '+e+"\n
    \n
    \n
    ",b=document.createElement("div");b.className="rolldate-container",b.innerHTML=x,document.body.appendChild(b),n.scroll={};for(var T=function(t){var i=a[l[t]];n.scroll[l[t]]=new Y("#"+i,{wheel:{selectedIndex:0}});var s=n.scroll[l[t]],e=D("#"+i+" .active"),o=e?e.getAttribute("data-index"):Math.round(h.getMinutes()/r.minStep);s.wheelTo(o),s.on("scrollEnd",function(){if(r.moveEnd&&r.moveEnd.call(n,s),-1!=[a.YYYY,a.MM].indexOf(s.wrapper.id)&&n.scroll.YYYY&&n.scroll.MM&&n.scroll.DD){var t=n.getMonthlyDay(n.getSelected(n.scroll.YYYY),n.getSelected(n.scroll.MM)),i="";if(t!=D("#"+a.DD+" li",1).length){for(var e=1;e<=t;e++)i+='
  • '+(e<10?"0"+e:e)+c.day+"
  • ";D("#"+a.DD+" ul").innerHTML=i,n.scroll.DD.refresh()}}if(s.wrapper.id===a.hh&&n.scroll.A){var o=parseInt(n.scroll.hh.selectedIndex)<12?0:1;n.scroll.A.wheelTo(o)}})},S=0;S Date: Thu, 3 Oct 2024 16:14:41 +0630 Subject: [PATCH 4/4] update readme --- README.md | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index b213bd6..c2e175b 100644 --- a/README.md +++ b/README.md @@ -70,22 +70,22 @@ seajs.use('rolldate',function(undefined){ }); ``` ## 参数、方法说明 -名称|必填|默认值|说明 +Name|Required|Default|Description ---|:-:|:-:|--- -el|否|无|绑定插件的dom元素,插件内部使用document.querySelector,
    也可以直接传递dom元素对象,只支持单个 -format|否|'YYYY-MM-DD'|日期格式,无限制。规则:年-YYYY 月-MM 日-DD 时-hh 分-mm 秒-ss 使用/、-、空格、:之一分隔,可随意组合 -beginYear|否|2000|日期开始年份 -endYear|否|2100|日期结束年份 -value|否|无|日期初始化的默认值,列如'2018-03-18' -lang|否|年、月、日...|配置插件语言,默认:title:'选择日期',cancel:'取消',confirm:'确认',
    year:'年',month:'月',day:'日',hour:'时',min:'分',sec:'秒' -minStep|否|1|分钟按指定数分隔 -init|否|null|插件触发前的回调函数,return false可阻止插件执行 -moveEnd|否|null|插件滚动后的回调函数,函数返回一个参数(better-scroll实例) -confirm|否|null|确认按钮触发前的回调函数,return false可阻止插件执行,
    return其他值可修改日期,函数返回一个参数(选中的日期) -cancel|否|null|插件取消时触发的回调函数 -trigger|否|'tap'|默认使用tap解决移动端click事件300ms延迟,可选click替换tap。注意使用tap会阻止其他绑定的click事件的触发 -show|否|无|主动触发插件,当trigger为tap时,主动触发插件应该使用此方法 -hide|否|无|主动隐藏插件 +el|No|None|The DOM element to which the plugin is bound. The plugin uses `document.querySelector` internally.
    You can also directly pass a DOM element object, only supports a single element. +format|No|'YYYY-MM-DD'|Date format, no restrictions. Rules: Year-YYYY Month-MM Day-DD Hour-hh Minute-mm Second-ss AM/PM-A Use one of /, -, space, : as separators, can be freely combined. +beginYear|No|2000|Start year of the date +endYear|No|2100|End year of the date +value|No|None|Default value for date initialization, e.g., '2018-03-18' +lang|No|Year, Month, Day...|Configure the plugin language, default: title:'Select Date', cancel:'Cancel', confirm:'Confirm',
    year:'Year', month:'Month', day:'Day', hour:'Hour', min:'Minute', sec:'Second' +minStep|No|1|Minutes are divided by the specified number +init|No|null|Callback function before the plugin is triggered, return false to prevent the plugin from executing +moveEnd|No|null|Callback function after the plugin scrolls, the function returns one parameter (better-scroll instance) +confirm|No|null|Callback function before the confirm button is triggered, return false to prevent the plugin from executing,
    return other values to modify the date, the function returns one parameter (selected date) +cancel|No|null|Callback function triggered when the plugin is canceled +trigger|No|'tap'|Default is to use tap to solve the 300ms delay of the click event on mobile devices, you can choose click to replace tap. Note that using tap will prevent other bound click events from being triggered +show|No|None|Actively trigger the plugin, when trigger is tap, actively trigger the plugin should use this method +hide|No|None|Actively hide the plugin ```js //完整参数、方法示例 diff --git a/package.json b/package.json index caafd3e..d4d779f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rolldate-nhs", - "version": "3.1.3", + "version": "3.1.4", "description": "rolldate: A versatile and powerful mobile date picker plugin", "main": "dist/rolldate.min.js", "scripts": {