12
12
body {font : 12 px/1.125 Microsoft YaHei;background : # fff ;}
13
13
ul , li {list-style : none;}
14
14
a {text-decoration : none;}
15
- .wrap {width : 400 px ;height : 350px ;text-align : center;margin : 150px auto;}
15
+ .wrap {width : 580 px ;height : 350px ;text-align : center;margin : 150px auto;}
16
16
.wrap .btn {margin : 0 10px ;padding : 8px 40px ;}
17
17
.inner {padding : 15px ;}
18
18
.clearfix {overflow : hidden;_zoom : 1 ;}
19
19
.none {display : none;}
20
+ .color-panle {display : none;width : 199px ;background : # fff ;}
21
+ .color-list {border-top : 1px solid # 000 ;border-left : 1px solid # 000 ;}
22
+ .color-list ul {float : left;width : 66px ;height : 66px ;margin : 0 ;padding : 0 ;}
23
+ .color-list li {list-style : none;float : left;width : 10px ;height : 10px ;border-bottom : 1px solid # 000 ;border-right : 1px solid # 000 ;overflow : hidden;cursor : pointer;}
24
+ .color-read {padding-bottom : 5px ;height : 15px ;}
25
+ .color-read .color-val {float : right;}
26
+ .color-read .color-show {float : left;width : 50px ;height : 15px ;border : 1px solid # 000 ;}
20
27
</ style >
21
- < link rel ="stylesheet " id ="style " href ="css/blue.css ">
22
28
</ head >
23
29
< body >
24
30
< div class ="wrap ">
25
- < div class ="demo " id ="div ">
31
+ < div class ="demo " id ="container ">
26
32
< input type ="text " name ="" size ="60 " id ="input " class ="input input-lg ">
33
+
27
34
</ div >
28
35
</ div >
29
36
< div style ="display:none; ">
30
37
< div id ="div " style ="width:100px;height:200px;background:#000; "> </ div >
31
38
< button id ="btn "> test</ button >
32
39
</ div >
40
+ < script type ="text/html " id ="tpl-list ">
41
+ < % for ( var i = 0 ; i < data . length ; i ++ ) { % >
42
+ < ul >
43
+ < % for ( var j = 0 ; j < data [ i ] . length ; j ++ ) { % >
44
+ < li style = "background-color:#<%=data[i][j]%>" > </ li >
45
+ < % } % >
46
+ </ul >
47
+ < % } % >
48
+ </ script >
33
49
< script >
34
50
( function ( ) {
35
51
var div = document . getElementById ( 'div' )
36
52
var btn = div . getElementsByTagName ( 'button' )
37
53
var style = document . getElementById ( 'style' )
38
54
var css = [ 'blue.css' , 'yellow.css' , 'green.css' ]
39
55
40
- function init ( ) {
41
- var href = getCookie ( 'css' )
42
- if ( href . length ) {
43
- setStyle ( href )
44
- }
45
- }
46
-
47
- init ( )
48
-
49
56
var dog = {
50
57
$ : function ( selector ) {
51
- return document . querySelector ( selector ) ;
58
+ return document . querySelector ( selector )
52
59
} ,
53
60
on : function ( el , type , handler ) {
54
- el . addEventListener ( type , handler , false ) ;
61
+ el . addEventListener ( type , handler , false )
55
62
} ,
56
63
off : function ( el , type , handler ) {
57
- el . removeEventListener ( type , handler ) ;
64
+ el . removeEventListener ( type , handler )
58
65
} ,
59
66
position : function ( obj , attr ) {
60
67
if ( obj ) {
61
- var method = obj . getBoundingClientRect ( ) ;
62
- return attr ? method [ attr ] : method ;
68
+ var method = obj . getBoundingClientRect ( )
69
+ return attr ? method [ attr ] : method
63
70
} else {
64
- console . log ( '对象不存在!' ) ;
71
+ console . log ( '对象不存在!' )
65
72
}
66
73
} ,
67
74
cache : { } ,
77
84
. split ( "\t" ) . join ( "';" )
78
85
. split ( "%>" ) . join ( "p+='" )
79
86
. split ( "\r" ) . join ( "\\'" )
80
- + "';return p;" ) ;
87
+ + "';return p;" )
81
88
82
- return data ? fn . call ( data ) : fn ;
89
+ return data ? fn . call ( data ) : fn
83
90
} ,
84
91
setCookie : function ( key , value , day ) {
85
92
var d = new Date ( )
91
98
for ( var i = 0 ; i < list . length ; i ++ ) {
92
99
var one = list [ i ] . split ( '=' )
93
100
if ( one [ 0 ] == key ) {
94
- return one [ 1 ] ;
101
+ return one [ 1 ]
95
102
}
96
103
} ;
97
104
return ''
98
105
} ,
99
106
delCookies : function ( key ) {
100
107
this . setCookie ( key , 1 , - 1 )
108
+ } ,
109
+ show : function ( obj ) {
110
+ obj . style . display = 'block'
111
+ } ,
112
+ hide : function ( obj ) {
113
+ obj . style . display = 'none'
101
114
}
102
115
}
103
116
104
117
function Palette ( ) {
105
118
var args = arguments [ 0 ] ,
106
- dom = args . dom ;
119
+ dom = args . dom
107
120
108
121
for ( var key in args ) {
109
122
if ( key == 'dom' ) {
110
123
this . getDom ( dom ) ;
111
124
} else {
112
- this [ key ] = args [ key ] ;
125
+ this [ key ] = args [ key ]
113
126
}
114
127
}
115
- this . init ( ) ;
128
+ this . init ( )
116
129
}
117
130
Palette . prototype = {
118
131
init : function ( ) {
119
- this . render ( ) ;
132
+ this . render ( )
133
+ } ,
134
+ __dom : {
135
+ __list : '.color-list'
120
136
} ,
121
137
setDom : function ( ) {
122
- this . getDom ( this . _dom ) ;
138
+ this . getDom ( this . __dom )
123
139
} ,
124
140
getDom : function ( dom ) {
125
141
for ( var prop in dom ) {
126
- this [ prop ] = dog . $ ( dom [ prop ] ) ;
142
+ this [ prop ] = dog . $ ( dom [ prop ] )
127
143
}
128
144
} ,
129
145
render : function ( ) {
146
+ var dom = null
130
147
148
+ if ( ! ( dom = dog . $ ( '#panel' ) ) ) {
149
+ this . createPanel ( )
150
+ } else {
151
+ dog . show ( dom )
152
+ }
153
+ } ,
154
+ createPanel : function ( ) {
155
+ this . createBody ( )
156
+ this . setDom ( )
157
+ this . createLump ( )
158
+ } ,
159
+ createBody : function ( ) {
160
+ var div = document . createElement ( 'div' ) ,
161
+ pos = dog . position ( this . input )
162
+
163
+ div . id = 'panel'
164
+ div . innerHTML = this . tpl [ 0 ]
165
+ div . style . top = pos . top + 32 + 'px'
166
+ div . style . left = pos . left + 'px'
167
+ div . children [ 0 ] . style . display = 'block'
168
+ this . container . appendChild ( div )
169
+ this . calendar = div
170
+ } ,
171
+ createLump : function ( ) {
172
+ var data = this . getColorsData ( ) ,
173
+ tplHtml = this . tplList ,
174
+ __list = this . __list
175
+
176
+ console . log ( data ) ;
177
+ __list . innerHTML = dog . tpl ( tplHtml . innerHTML , data )
178
+ } ,
179
+ getColorsData : function ( ) {
180
+ var arr = [ '0' , '3' , '6' , '9' , 'c' , 'f' ] ,
181
+ data = [ ]
182
+
183
+ for ( var i = 0 ; i < arr . length ; i ++ ) {
184
+ data . push ( this . createColors ( arr [ i ] , arr ) )
185
+ }
186
+ return data
187
+ } ,
188
+ createColors : function ( one , arr ) {
189
+ var colors = [ ]
190
+
191
+ for ( var i = 0 ; i < 6 ; i ++ ) {
192
+ for ( var j = 0 ; j < 6 ; j ++ ) {
193
+ colors . push ( one + arr [ j ] + arr [ i ] )
194
+ }
195
+ }
196
+ return colors
131
197
}
132
198
}
133
199
134
200
var defaults = {
135
201
dom : {
136
- container : '#calendar' ,
137
- input : '#input'
138
- } ,
139
- zh : {
140
- days : [ '日' , '一' , '二' , '三' , '四' , '五' , '六' ] ,
141
- months : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' , '十月' , '十一月' , '十二月' ] ,
142
- monthsShort : [ '一月' , '二月' , '三月' , '四月' , '五月' , '六月' , '七月' , '八月' , '九月' , '十月' , '十一' , '十二' ] ,
143
- today : '今天' ,
144
- clear : '清空'
202
+ container : '#container' ,
203
+ input : '#input' ,
204
+ tplList : '#tpl-list'
145
205
} ,
146
206
tpl :
147
207
[
148
- '<div class="datetimepicker datetimepicker-dropdown-bottom-right dropdown-menu">' +
149
- '<div class="datetimepicker-days">' +
150
- '<table class="table-condensed">' +
151
- '<thead>' +
152
- '<tr>' +
153
- '<th class="prev"><i class="icon-arrow-left"></i></th>' +
154
- '<th colspan="5" class="switch"></th>' +
155
- '<th class="next"><i class="icon-arrow-right"></i></th>' +
156
- '</tr>' +
157
- '</thead>' +
158
- '<tbody></tbody>' +
159
- '<tfoot class="none">' +
160
- '<tr><th colspan="7" class="today"></th></tr>' +
161
- '<tr><th colspan="7" class="clear"></th></tr>' +
162
- '</tfoot>' +
163
- '</table>' +
164
- '</div>' +
165
- '</div>' ,
166
- '1'
208
+ '<div class="color-panle">' +
209
+ ' <div class="color-read">' +
210
+ ' <span class="color-val"></span><span class="color-show"></span>' +
211
+ ' </div>' +
212
+ ' <div class="color-list">' +
213
+ ' </div>' +
214
+ '</div>'
167
215
]
168
216
169
217
}
170
218
document . getElementById ( 'input' ) . onclick = function ( e ) {
171
- new Calendar ( defaults ) ;
172
- e . stopPropagation ( ) ;
219
+ new Palette ( defaults )
173
220
}
174
221
} ( ) ) ;
222
+
223
+ var data = [
224
+ [ '000' , '111' , '022' ] ,
225
+ [ '900' , '911' , '922' ] ,
226
+ [ 'c00' , 'c11' , 'c22' ] ,
227
+ ]
175
228
</ script >
176
229
</ body >
177
230
</ html >
0 commit comments