ys_datetime_selector.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<code>.ys-datetime-selector{</code>
<code> </code><code>position</code><code>:</code><code>fixed</code><code>;</code>
<code> </code><code>left</code><code>:</code><code>0</code><code>;</code>
<code> </code><code>right</code><code>:</code><code>0</code><code>;</code>
<code> </code><code>top</code><code>:</code><code>0</code><code>;</code>
<code> </code><code>bottom</code><code>:</code><code>0</code><code>;</code>
<code> </code><code>background-color</code><code>:rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.3</code><code>);</code>
<code> </code><code>z-index</code><code>: </code><code>999</code><code>;</code>
<code>}</code>
<code>.ys-datetime-selector.display-</code><code>hide</code><code>{</code>
<code> </code><code>transform: translate</code><code>3</code><code>d(</code><code>100%</code><code>,</code><code>0</code><code>,</code><code>0</code><code>);</code>
<code> </code><code>-webkit-transform: translate</code><code>3</code><code>d(</code><code>100%</code><code>,</code><code>0</code><code>,</code><code>0</code><code>);</code>
<code> </code><code>visibility</code><code>: </code><code>hidden</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content{</code>
<code> </code><code>position</code><code>:</code><code>absolute</code><code>;</code>
<code> </code><code>background-color</code><code>:</code><code>#fff</code><code>;</code>
<code>/* ======================================== ys-datetime-operation-bar ======================================== */</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar{</code>
<code> </code><code>height</code><code>:</code><code>45px</code><code>;</code>
<code> </code><code>line-height</code><code>: </code><code>44px</code><code>;</code>
<code> </code><code>border-bottom</code><code>:</code><code>1px</code> <code>solid</code> <code>#e0e0e0</code><code>;</code>
<code> </code><code>text-align</code><code>: </code><code>center</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar span{</code>
<code> </code><code>color</code><code>:</code><code>#333</code><code>;</code>
<code> </code><code>font-size</code><code>:</code><code>16px</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a{</code>
<code> </code><code>padding</code><code>:</code><code>0</code> <code>15px</code><code>;</code>
<code> </code><code>color</code><code>:</code><code>#4e9dcf</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a.ys-datetime-cancel-btn{</code><code>left</code><code>:</code><code>0</code><code>;}</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-operation-bar a.ys-datetime-ok-btn{</code><code>right</code><code>:</code><code>0</code><code>;}</code>
<code>/* ======================================== ys-datetime-blocks ======================================== */</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks{</code>
<code> </code><code>position</code><code>:</code><code>relative</code><code>;</code>
<code> </code><code>height</code><code>:</code><code>170px</code><code>;</code>
<code> </code><code>-webkit-mask-box-image: -webkit-linear-gradient(</code><code>top</code><code>, rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.2</code><code>), rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.4</code><code>) </code><code>20%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.6</code><code>) </code><code>39%</code><code>,</code><code>white</code> <code>40%</code><code>, </code><code>white</code> <code>60%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.6</code><code>) </code><code>41%</code><code>, rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.4</code><code>) </code><code>80%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.2</code><code>));</code>
<code> </code><code>-webkit-mask-box-image: linear-gradient(to </code><code>top</code><code>, rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.2</code><code>), rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.2</code><code>), rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.4</code><code>) </code><code>20%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.6</code><code>) </code><code>39%</code><code>,</code><code>white</code> <code>40%</code><code>, </code><code>white</code> <code>60%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.6</code><code>) </code><code>41%</code><code>, rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.4</code><code>) </code><code>80%</code><code>,rgba(</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0</code><code>,</code><code>0.2</code><code>));</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks:before{</code>
<code> </code><code>content</code><code>:</code><code>""</code><code>;</code>
<code> </code><code>height</code><code>:</code><code>1px</code><code>;</code>
<code> </code><code>background-color</code><code>:</code><code>#cdcdcd</code><code>;</code>
<code> </code><code>top</code><code>:</code><code>68px</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks:after{</code>
<code> </code><code>bottom</code><code>:</code><code>68px</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div{</code>
<code> </code><code>width</code><code>:</code><code>33.333%</code><code>;</code>
<code> </code><code>float</code><code>:</code><code>left</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.block-</code><code>hide</code><code>{</code>
<code> </code><code>display</code><code>:</code><code>none</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.width</code><code>-50</code><code>{</code>
<code> </code><code>width</code><code>:</code><code>50%</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks>div.width</code><code>-100</code><code>{</code>
<code> </code><code>width</code><code>:</code><code>100%</code><code>;</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks .swiper-container{</code>
<code>.ys-datetime-selector .ys-datetime-selector-content .ys-datetime-blocks .swiper-container .swiper-slide{</code>
<code> </code><code>height</code><code>:</code><code>34px</code><code>;</code>
<code> </code><code>line-height</code><code>: </code><code>34px</code><code>;</code>
<code>/* ================================================== page animation start ================================================== */</code>
<code>.ys-datetime-selector .datetime-selector-animated{</code>
<code> </code><code>animation-duration: </code><code>0.3</code><code>s;</code>
<code> </code><code>-webkit-animation-duration: </code><code>0.3</code><code>s;</code>
<code> </code><code>-webkit-animation-fill-mode: </code><code>both</code><code>;</code>
<code> </code><code>animation-fill-mode: </code><code>both</code><code>;</code>
<code>/* datetime-selector-slide-down-in */</code>
<code>.ys-datetime-selector .datetime-selector-slide-down-in{</code>
<code> </code><code>animation-name:datetime-selector-slide-down-in;</code>
<code> </code><code>-webkit-animation-name:datetime-selector-slide-down-in;</code>
<code>@keyframes datetime-selector-slide-down-in {</code>
<code> </code><code>from{</code>
<code> </code><code>-webkit-transform: translate</code><code>3</code><code>d(</code><code>0</code><code>, </code><code>100%</code><code>, </code><code>0</code><code>);</code>
<code> </code><code>transform: translate</code><code>3</code><code>d(</code><code>0</code><code>, </code><code>100%</code><code>, </code><code>0</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>to{</code>
<code> </code><code>-webkit-transform: translate</code><code>3</code><code>d(</code><code>0</code><code>, </code><code>0</code><code>, </code><code>0</code><code>);</code>
<code> </code><code>transform: translate</code><code>3</code><code>d(</code><code>0</code><code>, </code><code>0</code><code>, </code><code>0</code><code>);</code>
<code>@-webkit-keyframes datetime-selector-slide-down-in {</code>
<code>/* datetime-selector-slide-down-out */</code>
<code>.datetime-selector-slide-down-out{</code>
<code> </code><code>animation-name:datetime-selector-slide-down-out;</code>
<code> </code><code>-webkit-animation-name:datetime-selector-slide-down-out;</code>
<code>@keyframes datetime-selector-slide-down-out {</code>
<code>@-webkit-keyframes datetime-selector-slide-down-out {</code>
ys_datetime_selector.js
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
<code>(</code><code>function</code><code>($){</code>
<code> </code><code>var</code> <code>container = $(</code><code>".ys-datetime-selector"</code><code>);</code>
<code> </code><code>var</code> <code>currentYear = </code><code>new</code> <code>Date().getFullYear();</code>
<code> </code><code>var</code> <code>currentMonth = </code><code>new</code> <code>Date().getMonth()+1;</code>
<code> </code><code>var</code> <code>currentDate = </code><code>new</code> <code>Date().getDate();</code>
<code> </code><code>var</code> <code>currentDayCount = getMaxDateInMonth(currentYear,currentMonth);</code>
<code> </code><code>var</code> <code>yearSwiper =</code><code>null</code><code>;</code>
<code> </code><code>var</code> <code>monthSwiper =</code><code>null</code><code>;</code>
<code> </code><code>var</code> <code>dateSwiper =</code><code>null</code><code>;</code>
<code> </code><code>var</code> <code>callback = </code><code>function</code><code>(year,month,date){};</code>
<code> </code><code>var</code> <code>html = </code><code>"<div class='ys-datetime-selector display-hide'> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-selector-content'> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-operation-bar'> "</code><code>+</code>
<code> </code><code>" <a class='ys-datetime-cancel-btn'>取消</a>"</code><code>+</code>
<code> </code><code>" <span>选择日期</span> "</code><code>+</code>
<code> </code><code>" <a class='ys-datetime-ok-btn'>确定</a> "</code><code>+</code>
<code> </code><code>" </div> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-blocks'> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-year-block'> "</code><code>+</code>
<code> </code><code>" <div class='swiper-container'> "</code><code>+</code>
<code> </code><code>" <div class='swiper-wrapper'></div>"</code><code>+</code>
<code> </code><code>" </div> "</code><code>+</code>
<code> </code><code>" </div> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-month-block'> "</code><code>+</code>
<code> </code><code>" <div class='ys-datetime-date-block'> "</code><code>+</code>
<code> </code><code>" <div style='clear:both;'></div> "</code><code>+</code>
<code> </code><code>" </div> "</code><code>+</code>
<code> </code><code>"</div> "</code><code>;</code>
<code> </code><code>/* ======================================== initialize the page view ======================================== */</code>
<code> </code><code>function</code> <code>render(){</code>
<code> </code><code>container = $(html).appendTo(</code><code>"body"</code><code>);</code>
<code> </code><code>yearSwiper = </code><code>new</code> <code>Swiper(</code><code>".ys-datetime-year-block .swiper-container"</code><code>, {</code>
<code> </code><code>direction : </code><code>"vertical"</code><code>,</code>
<code> </code><code>freeMode:</code><code>true</code><code>,</code>
<code> </code><code>freeModeSticky:</code><code>true</code><code>,</code>
<code> </code><code>slidesPerView: </code><code>"auto"</code><code>,</code>
<code> </code><code>onTransitionEnd:</code><code>function</code><code>(swiper){</code>
<code> </code><code>var</code> <code>activeIndex = swiper.activeIndex;</code>
<code> </code><code>var</code> <code>slidesLen = swiper.slides.length;</code>
<code> </code><code>if</code><code>(activeIndex<20){</code>
<code> </code><code>var</code> <code>firstYear = parseInt($(swiper.slides[0]).attr(</code><code>"data-year"</code><code>));</code>
<code> </code><code>var</code> <code>prevYears = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=firstYear-1;i>=firstYear-100;i--){</code>
<code> </code><code>prevYears.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>swiper.prependSlide(prevYears);</code>
<code> </code><code>}</code><code>else</code> <code>if</code><code>(slidesLen-activeIndex<20){</code>
<code> </code><code>var</code> <code>lastYear = parseInt($(swiper.slides[slidesLen-1]).attr(</code><code>"data-year"</code><code>));</code>
<code> </code><code>var</code> <code>nextYears = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=lastYear+1;i<=lastYear+100;i++){</code>
<code> </code><code>nextYears.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>swiper.appendSlide(nextYears);</code>
<code> </code><code>}</code>
<code> </code><code>// 计算这个月有多少天</code>
<code> </code><code>currentYear = parseInt($(swiper.slides[activeIndex+2]).attr(</code><code>"data-year"</code><code>));</code>
<code> </code><code>updateDateSwiper();</code>
<code> </code><code>}</code>
<code> </code><code>});</code>
<code> </code><code>var</code> <code>yearSlides = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=currentYear-2;i<=currentYear+102;i++){</code>
<code> </code><code>yearSlides.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>var</code> <code>prevYears = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=currentYear-3;i>currentYear-100;i--){</code>
<code> </code><code>prevYears.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>yearSwiper.appendSlide(yearSlides);</code>
<code> </code><code>yearSwiper.prependSlide(prevYears);</code>
<code> </code><code>monthSwiper = </code><code>new</code> <code>Swiper(</code><code>".ys-datetime-month-block .swiper-container"</code><code>, {</code>
<code> </code><code>direction :</code><code>"vertical"</code><code>,</code>
<code> </code><code>freeModeMomentumRatio:0.2,</code>
<code> </code><code>loop:</code><code>true</code><code>,</code>
<code> </code><code>loopAdditionalSlides:24,</code>
<code> </code><code>slidesPerView:</code><code>"auto"</code><code>,</code>
<code> </code><code>if</code><code>(isNaN(activeIndex)){</code>
<code> </code><code>return</code><code>;</code>
<code> </code><code>currentMonth = parseInt($(swiper.slides[activeIndex+2]).attr(</code><code>"data-month"</code><code>));</code>
<code> </code><code>var</code> <code>monthSlides=[];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=1;i<=12;i++){</code>
<code> </code><code>monthSlides.push(</code><code>"<div class='swiper-slide' data-month='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"月</div>"</code><code>);</code>
<code> </code><code>monthSwiper.appendSlide(monthSlides);</code>
<code> </code><code>dateSwiper = </code><code>new</code> <code>Swiper(</code><code>".ys-datetime-date-block .swiper-container"</code><code>, {</code>
<code> </code><code>loop : </code><code>true</code><code>,</code>
<code> </code><code>currentDate = parseInt($(swiper.slides[activeIndex+2]).attr(</code><code>"data-date"</code><code>));</code>
<code> </code><code>var</code> <code>dateSlides=[];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=1;i<=currentDayCount;i++){</code>
<code> </code><code>dateSlides.push(</code><code>"<div class='swiper-slide' data-date='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"日</div>"</code><code>);</code>
<code> </code><code>dateSwiper.appendSlide(dateSlides);</code>
<code> </code><code>/* ======================================== bind events ======================================== */</code>
<code> </code><code>function</code> <code>bindEvents(){</code>
<code> </code><code>container.on(</code><code>"click"</code><code>,</code><code>function</code><code>(e){</code>
<code> </code><code>e.stopPropagation();</code>
<code> </code><code>e.preventDefault();</code>
<code> </code><code>container.find(</code><code>".ys-datetime-selector-content"</code><code>).addClass(</code><code>"datetime-selector-slide-down-out"</code><code>);</code>
<code> </code><code>container.on(</code><code>"click"</code><code>,</code><code>".ys-datetime-selector-content"</code><code>,</code><code>function</code><code>(e){</code>
<code> </code><code>container.on(</code><code>"click"</code><code>,</code><code>function</code><code>(e){e.preventDefault();e.stopPropagation();});</code>
<code> </code><code>container.on(</code><code>"click"</code><code>,</code><code>".ys-datetime-cancel-btn"</code><code>,</code><code>function</code><code>(e){</code>
<code> </code><code>container.on(</code><code>"click"</code><code>,</code><code>".ys-datetime-ok-btn"</code><code>,</code><code>function</code><code>(e){</code>
<code> </code><code>callback(currentYear,currentMonth,currentDate);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-selector-content"</code><code>).on(</code><code>"animationend webkitAnimationEnd"</code><code>,</code><code>function</code><code>(){</code>
<code> </code><code>if</code><code>($(</code><code>this</code><code>).hasClass(</code><code>"datetime-selector-slide-down-out"</code><code>)){</code>
<code> </code><code>container.addClass(</code><code>"display-hide"</code><code>);</code>
<code> </code><code>$(</code><code>this</code><code>).removeClass(</code><code>"datetime-selector-slide-down-in"</code><code>).removeClass(</code><code>"datetime-selector-slide-down-out"</code><code>);</code>
<code> </code><code>var</code> <code>initialized = </code><code>false</code><code>;</code>
<code> </code><code>function</code> <code>init(){</code>
<code> </code><code>if</code><code>(initialized){</code>
<code> </code><code>return</code><code>;</code>
<code> </code><code>initialized = </code><code>true</code><code>;</code>
<code> </code><code>render();</code>
<code> </code><code>bindEvents();</code>
<code> </code><code>/* ======================================== common methods ======================================== */</code>
<code> </code><code>function</code> <code>getMaxDateInMonth(year,month){</code>
<code> </code><code>var</code> <code>date = </code><code>new</code> <code>Date();</code>
<code> </code><code>date.setFullYear(year);</code>
<code> </code><code>date.setMonth(month);</code>
<code> </code><code>date.setDate(0);</code>
<code> </code><code>return</code> <code>date.getDate();</code>
<code> </code><code>function</code> <code>updateDateSwiper(){</code>
<code> </code><code>var</code> <code>nextDayCount = getMaxDateInMonth(currentYear,currentMonth);</code>
<code> </code><code>if</code><code>(currentDayCount>nextDayCount){</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=currentDayCount-1;i>=nextDayCount;i--){</code>
<code> </code><code>dateSwiper.removeSlide(i);</code>
<code> </code><code>}</code><code>else</code> <code>if</code><code>(currentDayCount<nextDayCount){</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=currentDayCount+1;i<=nextDayCount;i++){</code>
<code> </code><code>dateSwiper.appendSlide(</code><code>"<div class='swiper-slide' data-date='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"日</div>"</code><code>);</code>
<code> </code><code>currentDayCount = nextDayCount;</code>
<code> </code><code>currentDate = parseInt($(dateSwiper.slides[dateSwiper.activeIndex+2]).attr(</code><code>"data-date"</code><code>));</code>
<code> </code><code>function</code> <code>showDateTime(options){</code>
<code> </code><code>options = options||{};</code>
<code> </code><code>var</code> <code>year = options.year;</code>
<code> </code><code>var</code> <code>month = options.month;</code>
<code> </code><code>var</code> <code>date = options.date;</code>
<code> </code><code>var</code> <code>type = options.type||</code><code>"year-month-date"</code><code>;</code>
<code> </code><code>if</code><code>(type==</code><code>"year-month-date"</code><code>){</code>
<code> </code><code>container.find(</code><code>".ys-datetime-year-block"</code><code>).removeClass(</code><code>"block-hide"</code><code>).removeClass(</code><code>"width-50"</code><code>).removeClass(</code><code>"width-100"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-month-block"</code><code>).removeClass(</code><code>"block-hide"</code><code>).removeClass(</code><code>"width-50"</code><code>).removeClass(</code><code>"width-100"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-date-block"</code><code>).removeClass(</code><code>"block-hide"</code><code>).removeClass(</code><code>"width-50"</code><code>).removeClass(</code><code>"width-100"</code><code>);</code>
<code> </code><code>}</code><code>else</code> <code>if</code><code>(type==</code><code>"year-month"</code><code>){</code>
<code> </code><code>container.find(</code><code>".ys-datetime-date-block"</code><code>).addClass(</code><code>"block-hide"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-year-block"</code><code>).addClass(</code><code>"width-50"</code><code>).removeClass(</code><code>"width-100"</code><code>).removeClass(</code><code>"block-hide"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-month-block"</code><code>).addClass(</code><code>"width-50"</code><code>).removeClass(</code><code>"width-100"</code><code>).removeClass(</code><code>"block-hide"</code><code>);</code>
<code> </code><code>}</code><code>else</code> <code>if</code><code>(type==</code><code>"year"</code><code>){</code>
<code> </code><code>container.find(</code><code>".ys-datetime-month-block"</code><code>).addClass(</code><code>"block-hide"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-year-block"</code><code>).addClass(</code><code>"width-100"</code><code>);</code>
<code> </code><code>callback = options.callback||callback;</code>
<code> </code><code>currentYear = year||currentYear;</code>
<code> </code><code>currentMonth = month||currentMonth;</code>
<code> </code><code>currentDate = date||currentDate;</code>
<code> </code><code>currentDayCount = getMaxDateInMonth(currentYear,currentMonth);</code>
<code> </code><code>var</code> <code>yearSlidesLength = yearSwiper.slides.length;</code>
<code> </code><code>var</code> <code>minYear = parseInt($(yearSwiper.slides[2]).attr(</code><code>"data-year"</code><code>));</code>
<code> </code><code>var</code> <code>maxYear = parseInt($(yearSwiper.slides[yearSlidesLength-3]).attr(</code><code>"data-year"</code><code>));</code>
<code> </code><code>if</code><code>(currentYear<minYear){</code>
<code> </code><code>var</code> <code>prevYears = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=minYear-3;i>currentYear-20;i--){</code>
<code> </code><code>prevYears.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>yearSwiper.prependSlide(prevYears);</code>
<code> </code><code>yearSwiper.slideTo(17);</code>
<code> </code><code>}</code><code>else</code> <code>if</code><code>(currentYear>maxYear){</code>
<code> </code><code>var</code> <code>nextSlides = [];</code>
<code> </code><code>for</code><code>(</code><code>var</code> <code>i=maxYear+2;i<=currentYear+20;i++){</code>
<code> </code><code>nextSlides.push(</code><code>"<div class='swiper-slide' data-year='"</code><code>+i+</code><code>"'>"</code><code>+i+</code><code>"年</div>"</code><code>);</code>
<code> </code><code>yearSwiper.appendSlide(nextSlides);</code>
<code> </code><code>yearSwiper.slideTo(currentYear-minYear+1);</code>
<code> </code><code>}</code><code>else</code><code>{</code>
<code> </code><code>yearSwiper.slideTo(currentYear-minYear);</code>
<code> </code><code>monthSwiper.slideTo(currentMonth+9);</code>
<code> </code><code>dateSwiper.slideTo(currentDayCount-3+currentDate);</code>
<code> </code><code>container.removeClass(</code><code>"display-hide"</code><code>);</code>
<code> </code><code>container.find(</code><code>".ys-datetime-selector-content"</code><code>).addClass(</code><code>"datetime-selector-animated"</code><code>).addClass(</code><code>"datetime-selector-slide-down-in"</code><code>);</code>
<code> </code><code>var</code> <code>DateTimeWidget = {</code>
<code> </code><code>show:</code><code>function</code><code>(options){</code>
<code> </code><code>init();</code>
<code> </code><code>showDateTime(options);</code>
<code> </code><code>};</code>
<code> </code><code>window.DateTimeWidget = DateTimeWidget;</code>
<code>})(jQuery);</code>
datetime.html
<code><!DOCTYPE html></code>
<code><</code><code>head</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>charset</code><code>=</code><code>"utf-8"</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>http-equiv</code><code>=</code><code>"X-UA-Compatible"</code> <code>content</code><code>=</code><code>"IE=edge,chrome=1"</code><code>></code>
<code> </code><code><</code><code>title</code><code>></</code><code>title</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>name</code><code>=</code><code>"description"</code> <code>content</code><code>=</code><code>""</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>name</code><code>=</code><code>"viewport"</code> <code>content</code><code>=</code><code>"width=device-width, initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"</code><code>></code>
<code> </code><code><</code><code>meta</code> <code>name</code><code>=</code><code>"format-detection"</code> <code>content</code><code>=</code><code>"telephone=no"</code><code>></code>
<code> </code><code><!-- 导入CSS --></code>
<code> </code><code><</code><code>link</code> <code>href</code><code>=</code><code>"dist/css/swiper.min.css"</code> <code>rel</code><code>=</code><code>"stylesheet"</code><code>></code>
<code> </code><code><</code><code>link</code> <code>href</code><code>=</code><code>"css/common/ys_datetime_selector.css"</code> <code>rel</code><code>=</code><code>"stylesheet"</code><code>></code>
<code> </code><code><!-- 导入JS --></code>
<code> </code><code><</code><code>script</code> <code>src</code><code>=</code><code>"dist/js/jquery-1.11.3.min.js"</code><code>></</code><code>script</code><code>></code>
<code> </code><code><</code><code>script</code> <code>src</code><code>=</code><code>"dist/js/swiper.jquery.min.js"</code><code>></</code><code>script</code><code>></code>
<code></</code><code>head</code><code>></code>
<code><</code><code>body</code><code>></code>
<code> </code><code><</code><code>script</code> <code>src</code><code>=</code><code>"js/common/ys_datetime_selector.js"</code><code>></</code><code>script</code><code>></code>
<code> </code><code><</code><code>script</code><code>></code>
<code> </code><code>DateTimeWidget.show({</code>
<code> </code><code>year:2018,</code>
<code> </code><code>month:12,</code>
<code> </code><code>date:31,</code>
<code>// type:"year",</code>
<code> </code><code>callback:function(year,month,date){</code>
<code> </code><code>console.log(year+"年"+month+"月"+date+"日");</code>
<code> </code><code></</code><code>script</code><code>></code>
<code></</code><code>body</code><code>></code>
<code></</code><code>html</code><code>></code>
<a href="http://s4.51cto.com/wyfs02/M01/89/5B/wKiom1gQbW7DLb4aAAhe3Avqtco611.jpg" target="_blank"></a>
本文转自 antlove 51CTO博客,原文链接:http://blog.51cto.com/antlove/1865958