董佳音

添加样式图片

@@ -79,4769 +79,668 @@ img { @@ -79,4769 +79,668 @@ img {
79 -webkit-text-stroke-width: 0px; 79 -webkit-text-stroke-width: 0px;
80 -moz-osx-font-smoothing: grayscale; 80 -moz-osx-font-smoothing: grayscale;
81 } 81 }
82 -/*新加按钮*/  
83 -.markDiv{  
84 - float: right;  
85 - /*width:112px;*/  
86 - height: 32px; 82 +
  83 +body{
  84 + background: #f2f6f7;
  85 +}
  86 +.baseboardBox{
87 position: relative; 87 position: relative;
  88 + overflow: hidden;
88 } 89 }
89 -.setUpInfo{  
90 - color:#b3b3b3;  
91 - margin-top: 15px;  
92 - margin-right: 13px;  
93 - float: right;  
94 - cursor: pointer;  
95 - display: none; 90 +/*头部*/
  91 +.headerBg{
  92 + width:100%;
  93 + height:68px;
  94 + background: #fff;
96 } 95 }
97 -.iconVideo,.iconAudio,.iconRaise{  
98 - cursor: pointer;  
99 - display: inline-block; 96 +.header{
  97 + width:1220px;
  98 + height:70px;
  99 + position: absolute;
  100 + left: 0;
  101 + right: 0;
  102 + margin: 0 auto;
100 } 103 }
101 -.markDiv .iconVideo1,.markDiv .iconAudio1{  
102 - display: inline-block;  
103 - margin-top:15px;  
104 - margin-right:13px;  
105 - color:#b3b3b3;  
106 - float: right; 104 +/*图片*/
  105 +.header_img{
  106 + float: left;
  107 + margin: 15px 50px 0 0;
107 } 108 }
108 -.markDiv .iconVideo,.markDiv .iconAudio,.markDiv .iconBanned,.markDiv .iconBanned1,.markDiv .iconKick{  
109 - margin-top:15px;  
110 - margin-right:13px;  
111 - color:#b3b3b3;  
112 - float: right; 109 +.header_list{
  110 + float: left;
  111 +}
  112 +.header_listMsg{
  113 + float: left;
113 cursor: pointer; 114 cursor: pointer;
  115 + font-size: 16px;
  116 + color:#333333;
  117 + padding-right:35px;
  118 + text-align: center;
  119 + line-height: 70px;
114 } 120 }
115 -.markDiv .iconBanned,.markDiv .iconBanned1{  
116 - margin-right:11px; 121 +.header_listTeacherMsg{
  122 + padding-right:55px;
117 } 123 }
118 -.medioClose{  
119 - cursor: pointer;  
120 - margin-top:15px;  
121 -/* position: absolute;*/  
122 - display:none;  
123 - float: right;  
124 - margin-right:13px; 124 +.header_listMsg.active{
  125 + color:#3498db;
125 } 126 }
126 -.medioClose1{  
127 - cursor: pointer;  
128 - margin-top:15px;  
129 - margin-right:13px;  
130 - /*position: absolute;*/  
131 - display:none;  
132 - float: right; 127 +.header_listMsg:selected{
  128 + color:#3498db;
  129 +}
  130 +.header_seek{
  131 + float: left;
  132 + width: 240px;
  133 + color:#ccc;
  134 + position: relative;
  135 +}
  136 +.header_seekInput{
  137 + border:1px solid transparent;
  138 + border-bottom:1px solid #ccc;
  139 + width:100%;
  140 + display: inline-block;
  141 + margin-top: 26px;
  142 +}
  143 +.header_seekBtn{
  144 + position: absolute;
  145 + bottom:10px;
  146 + right:0;
133 } 147 }
134 -.iconRaise{  
135 - margin-top:15px;  
136 - margin-right:13px;  
137 - color: #d95136;  
138 - width:16px;  
139 - height:16px;  
140 - display:none; 148 +.DownloadLoginBox{
141 float: right; 149 float: right;
  150 + font-size: 16px;
142 } 151 }
143 -.iconKick{  
144 - display: none; 152 +.DownloadLoginBox li{
  153 + float: left;
145 } 154 }
146 -.raiseNum{  
147 - color:#d95136;  
148 - padding-left:8px; 155 +.androidDownload{
  156 + position: relative;
  157 + padding-left:25px;
  158 + line-height: 70px;
  159 + color:#666666;
149 } 160 }
150 -.controlBrush{  
151 - cursor: pointer;  
152 - width: 20px;  
153 - height:20px; 161 +.androidDownload:after{
  162 + content: "";
154 position: absolute; 163 position: absolute;
155 - right:30px;  
156 - top:6px;  
157 - z-index:1;  
158 - background: url(../images/tool/pencilClick.png) no-repeat;  
159 - background-size: 100%;  
160 - display: none; 164 + display: block;
  165 + width: 15px;
  166 + height: 15px;
  167 + background: url(../images/DL.png) no-repeat;
  168 + left:0;
  169 + top:28px;
161 } 170 }
162 -.controlBrushClick{  
163 - background: url(../images/tool/pencil.png) no-repeat;  
164 - background-size: 100%;  
165 - width:20px; 171 +.userNews{
  172 + float: left;
  173 + font-size: 16px;
  174 + line-height: 70px;
  175 + margin-left:20px;
166 } 176 }
167 -.raiseBtn{ 177 +.userLoginBtn{
  178 + width:30px;
  179 + height:30px;
  180 + border-radius: 50%;
  181 + background: #ccc;
  182 + background: url(../images/logo.png) no-repeat;
  183 + margin:12px 0 0 15px;
168 cursor: pointer; 184 cursor: pointer;
169 - color:#b3b3b3;  
170 - font-size: 20px; 185 +}
  186 +/*轮播图*/
  187 +.slideshow{
  188 + width:100%;
  189 + height:540px;
  190 + overflow: hidden;
  191 + position: relative;
  192 +}
  193 +.motionMapBox{
  194 + height:540px;
171 position: absolute; 195 position: absolute;
172 - right:30px;  
173 - top:5px;  
174 - z-index:1;  
175 } 196 }
176 -.raiseBtn:hover{  
177 - color: #ccc; 197 +.slidesMap{
  198 + float: left;
  199 + height:540px;
178 } 200 }
179 -.raiseBtn.active{  
180 - color: #3498db; 201 +.slidesImg{
  202 + height:540px;
181 } 203 }
182 -.iconBanned{  
183 - width:18px;  
184 - height:18px;  
185 - background: url(../images/banned/chat-student-hover.png) no-repeat; 204 +.dots{
  205 + position: absolute;
  206 + left: 0;
  207 + right: 0;
  208 + bottom: 20px;
  209 + text-align: center;
186 } 210 }
187 -/*.iconBanned:hover{*/  
188 - /*background: url(../images/banned/chat-student-normal.png) no-repeat;*/  
189 -/*}*/  
190 -.iconBanned1{  
191 - width:18px;  
192 - height:18px;  
193 - background: url(../images/banned/-silenced--student-hover-.png) no-repeat; 211 +.dots li{
  212 + display: inline-block;
  213 + width: 10px;
  214 + height: 10px;
  215 + margin: 0 4px;
  216 + text-indent: -999em;
  217 + border: 2px solid #fff;
  218 + border-radius: 6px;
  219 + cursor: pointer;
  220 + opacity: .4;
  221 + -webkit-transition: background .5s, opacity .5s;
  222 + -moz-transition: background .5s, opacity .5s;
  223 + transition: background .5s, opacity .5s;
194 } 224 }
195 -.iconBanned1:hover{  
196 - background: url(../images/banned/-silenced--student-normal.png) no-repeat; 225 +.dots li.active{
  226 + background: #fff;
  227 + opacity: 1;
197 } 228 }
198 -  
199 -html,body {  
200 - background: #262626;  
201 - overflow: hidden;  
202 - margin: 0;  
203 - padding: 0;  
204 - /*position: fixed;*/ 229 +/*主题盒子*/
  230 +.themeBox{
  231 + width:1220px;
  232 + height:auto;
  233 + left:0;
  234 + right:0;
  235 + margin:0 auto;
  236 + min-height: 1000px;
205 } 237 }
206 -  
207 -.header{  
208 - height: 48px;  
209 - line-height: 48px;  
210 - background: #262626;  
211 - position: absolute; 238 +/*首页*/
  239 +.box{
212 width: 100%; 240 width: 100%;
213 - top: 0;  
214 - left: 0; 241 + height:auto;
  242 + left:0;
  243 + right:0;
  244 + margin:0 auto;
  245 + min-height: 1000px;
215 } 246 }
216 -.classStatusIcon{ 247 +.curriculumBox{
217 float: left; 248 float: left;
218 - margin-left: 20px;  
219 - font-size: 14px;  
220 - color: #CCCCCC;  
221 } 249 }
222 -.classStatus{  
223 - float: left;  
224 - color: #d95136;  
225 - margin-left: 10px;  
226 - font-size: 14px; 250 +.curriculumBox1{
  251 + margin-bottom:60px;
227 } 252 }
228 -.curClassUserNum{  
229 - float: left;  
230 - width: 95px;  
231 - font-size: 12px;  
232 - margin-left: 30px;  
233 - color: #595959; 253 +.curriculumHandler{
  254 + margin:60px 0 26px 0;
234 } 255 }
235 -.curClassUserNum .curClassUserNumTotal{  
236 - margin-left: 10px;  
237 - color: #999; 256 +.curriculumTitle{
  257 + font-size: 22px;
  258 + float:left;
238 } 259 }
239 -.classTheme {  
240 - float: left;  
241 - margin-left: 20px;  
242 - color: #fff;  
243 - font-size: 14px; 260 +.curriculumMove{
  261 + padding:4px 10px 0 20px;
  262 + display: inline-block;
  263 + cursor: pointer;
244 } 264 }
245 -.exitText{  
246 - float: right;  
247 - font-size: 14px;  
248 - margin-left: 10px;  
249 - color: #CCC; 265 +.curriculumIcon{
250 cursor: pointer; 266 cursor: pointer;
251 } 267 }
252 -/*header 头部公共样式*/  
253 -.header_title{  
254 - float: right;  
255 - margin-right: 24px;  
256 - color: #CCC; 268 +.curriculumList{
  269 + width:286px;
  270 + height:280px;
  271 + float: left;
  272 + background: #fff;
  273 + margin-right:25px;
257 cursor: pointer; 274 cursor: pointer;
258 } 275 }
259 -.header_text{  
260 - float: right; 276 +.curriculumList:hover{
  277 + box-shadow: 1px 5px 15px #adadad;
  278 +}
  279 +.curriculumListImg{
  280 + width:100%;
  281 + height:194px;
  282 + border: 1px solid transparent;
  283 +}
  284 +.curriculumListTit{
261 font-size: 14px; 285 font-size: 14px;
262 - margin-left: 10px;  
263 - color: #CCC;  
264 - cursor: pointer; 286 + color: #333333;
  287 + float: left;
  288 + width: 100%;
  289 + padding:15px 0 25px 10px;
  290 +}
  291 +.curriculumListInfo{
  292 + float: left;
  293 + width:100%;
  294 + padding-bottom:12px;
265 } 295 }
266 -.header_title:hover,.header_text:hover{  
267 - color: #e5e5e5; 296 +.curriculumListTime{
  297 + float: left;
  298 + font-size: 12px;
  299 + color:#f55c22;
  300 + padding-left:10px;
268 } 301 }
269 -.setting:active, .settingText:active {  
270 - color: #d95136; 302 +.curriculumListNum{
  303 + float: right;
  304 + font-size: 12px;
  305 + color:#666666;
  306 + padding-right:10px;
271 } 307 }
272 -.help{ 308 +/*课堂分类列表*/
  309 +.classifyListBox{
  310 + width: 100%;
  311 + float: left;
273 display: none; 312 display: none;
274 } 313 }
275 -.help:active, .helpText:active {  
276 - color: #d95136; 314 +.classifyListTitle{
  315 + float: left;
  316 + width: 100%;
  317 + font-size: 22px;
  318 + margin: 60px 0 26px 0;
277 } 319 }
278 -/*header 头部公共样式 end*/  
279 -.mainContentBox{  
280 - position: absolute; 320 +.classifyListContent{
281 width: 100%; 321 width: 100%;
282 - top: 51px;  
283 - bottom: 0;  
284 - background: #262626; 322 + height:915px;
  323 + float: left;
285 } 324 }
286 -.leftWarp{  
287 - position: relative;  
288 - height: 100%;  
289 - -webkit-box-sizing: border-box;  
290 - -moz-box-sizing: border-box;  
291 - box-sizing: border-box;  
292 - border-radius: 3px;  
293 - overflow-x: hidden;  
294 - overflow-y: hidden; 325 +.classifyList{
  326 + width: 286px;
  327 + height: 280px;
  328 + float: left;
  329 + background: #fff;
  330 + margin-right: 25px;
  331 + cursor: pointer;
  332 + margin-bottom:25px;
295 } 333 }
296 -.leftWarp_top{ 334 +.classifyList:hover{
  335 + box-shadow: 1px 5px 15px #adadad;
  336 +}
  337 +.classifyListR{
  338 + margin-right:0px;
  339 +}
  340 +.pageNumContentBox{
297 width:100%; 341 width:100%;
298 - height:100%; 342 + height: 40px;
  343 + padding:30px 0 55px 0;
299 float: left; 344 float: left;
300 -}  
301 -.left{  
302 position: relative; 345 position: relative;
303 - float: left;  
304 - width: 48px;  
305 - height: 100%;  
306 - background: #474749;  
307 - /*bottom: 10px;*/  
308 -  
309 } 346 }
310 -.docUploadOut{  
311 - margin-left: 8px;  
312 - position: relative;  
313 - display: none; 347 +.pageNumContent{
  348 + max-width: 480px;
  349 + position: absolute;
  350 + left:0;
  351 + right:0;
  352 + margin:0 auto;
  353 + text-align: center;
314 } 354 }
315 -.docUpload{  
316 - font-size: 28px;  
317 - margin-left: 8px;  
318 - color: #b3b3b3; 355 +.pageNumBtn{
  356 + display: inline-block;
  357 + width:40px;
  358 + height:40px;
  359 + border-radius: 3px;
  360 + border:1px solid #ebebeb;
  361 + margin-right:15px;
  362 + text-align: center;
  363 + line-height: 40px;
  364 + background: #fff;
  365 + color:#666666;
319 cursor: pointer; 366 cursor: pointer;
320 } 367 }
321 -.docUpload input{  
322 - position: absolute;  
323 - left: 1px;  
324 - /*top: 24px;*/  
325 - width: 48px;  
326 - cursor: pointer;  
327 - margin: 10px;  
328 - opacity: 0; 368 +.pageNumBtnCheck{
  369 + background: #3498db;
  370 + color:#fff;
  371 + border:1px solid #3498db;
329 } 372 }
330 -.docUploadForbid{  
331 - height: 80px;  
332 - width: 60px;  
333 - position: absolute; 373 +/*互动课堂*/
  374 +.lanclassBox{
  375 + width:100%;
334 left:0; 376 left:0;
335 - top:0;  
336 - display: none; 377 + right:0;
  378 + margin:0 auto;
  379 + height:auto;
  380 + min-height:600px;
  381 +}
  382 +.lanclassContent{
  383 + height:345px;
  384 + background: #fff;
  385 + margin-top:40px;
  386 + padding-left:30px;
  387 +}
  388 +.teacherInfos{
  389 + margin-bottom:40px;
  390 +}
  391 +.lanclassContentCover{
  392 + width:404px;
  393 + height:278px;
  394 + margin:30px 75px 30px 0px;
  395 + float: left;
337 } 396 }
  397 +/*老师详细信息*/
  398 +.lanclassContentTitle{
  399 + font-size: 24px;
  400 + color: #333333;
  401 + padding:30px 0;
  402 +}
  403 +.lanclassContentInfo{
338 404
339 -.docListOut{  
340 - height: 36px;  
341 - width: 44px;  
342 - margin-top: 20px;  
343 - padding-top: 8px;  
344 - border-radius: 3px;  
345 } 405 }
346 -.docListOut1{  
347 - display: none; 406 +.lanclassContentInfoPortrait{
  407 + width:46px;
  408 + height:46px;
  409 + border-radius: 50%;
  410 + padding-bottom: 20px;
348 } 411 }
349 -.docListOut:hover{  
350 - border-radius: 3px;  
351 - background-color: #666;  
352 - cursor: pointer; 412 +.lanclassContentInfoName{
  413 + padding-left:20px;
  414 + font-size: 16px;
  415 + color: #333333;
353 } 416 }
354 -.docListOut:active{  
355 - border-radius: 3px;  
356 - background-color: #313131;  
357 - cursor: pointer; 417 +.lanclassContentInfoTime{
  418 + font-size: 16px;
  419 + color: #333333;
358 } 420 }
359 -.docList{  
360 - font-size: 28px;  
361 - margin-left: 8px;  
362 - color: #b3b3b3;  
363 - cursor: pointer; 421 +.lanclassContentInfoTimeStart{
  422 + display:inline-block;
  423 + width: 100%;
364 } 424 }
365 -/*文件上传*/  
366 -.am-modal-dialog .doc-headline{  
367 - font-size: 14px;  
368 - color: #fff; 425 +.lanclassContentInfoTimeEnd{
  426 + display:inline-block;
  427 + width: 100%;
  428 + padding-top:10px;
  429 +}
  430 +.lanclassContentApply{
  431 + width:180px;
  432 + height:48px;
369 background: #3498db; 433 background: #3498db;
370 - height: 32px;  
371 - line-height: 32px;  
372 - text-align: left;  
373 - padding-left: 15px; 434 + border-radius: 3px;
  435 + color:#fff;
  436 + text-align: center;
  437 + line-height: 48px;
  438 + font-size: 16px;
  439 + margin-top:50px;
  440 + cursor: pointer;
374 } 441 }
375 -.doc-headline a{ 442 +.lanclassContentCenter{
  443 + float: left;
  444 +}
  445 +/*第三方登录 收藏*/
  446 +.lanclassContentRight{
376 float: right; 447 float: right;
377 - margin-right: 10px;  
378 - color: white;  
379 - 448 + height: 100%;
  449 + position: relative;
380 } 450 }
381 -.doc-headline a:hover{  
382 - color: white;  
383 - 451 +.thirdPartyIconBox{
  452 + padding:30px 30px 0 0;
384 } 453 }
385 -.am-modal-bd-file{  
386 - height: 256px;  
387 - width: 398px;  
388 - 454 +.thirdPartyIcon{
  455 + width:24px;
  456 + height:24px;
  457 + display: inline-block;
  458 + padding-left:10px;
  459 + cursor: pointer;
389 } 460 }
390 -.am-modal-bd-file .push-file{  
391 - display: none;  
392 - width: 360px;  
393 - margin: 0 auto;  
394 - border-bottom: 1px solid #CCCCCC; 461 +.weixinIcon{
  462 + color: #09bb07;
  463 +}
  464 +.qqIcon{
  465 + color: #3cc3f5;
  466 +}
  467 +.weiboIcon{
  468 + color: #d32024;
  469 +}
  470 +.collectBox{
  471 + position: absolute;
  472 + left:0;
  473 + bottom:30px;
395 cursor: pointer; 474 cursor: pointer;
396 -  
397 } 475 }
398 -.am-modal-bd-file .push-file span,.am-modal-bd-file .push-file a{  
399 - float: right; 476 +.collectIcon{
  477 + padding:0 20px 5px 0;
  478 +}
  479 +.collectText{
  480 + font-size: 16px;
  481 + color:#333333;
400 } 482 }
401 -.am-modal-bd-file .push-file span{  
402 - margin: 8px 11px 8px 0;  
403 - width: 16px;  
404 - height: 16px; 483 +/*课堂介绍*/
  484 +.lanclassIntroduceTitle{
  485 + padding:40px 0 20px 0px;
  486 + color:#333333;
  487 + font-size: 20px;
405 } 488 }
406 -.am-modal-bd-file .push-file a{  
407 - margin: 10px 10px 10px 0; 489 +.lanclassIntroduceContent{
  490 + padding-right: 30px;
408 font-size: 12px; 491 font-size: 12px;
409 - color: #333333; 492 + color:#333333;
410 } 493 }
411 -.am-modal-bd-file a input{  
412 - width: 0;  
413 - height: 0;  
414 - 494 +/*老师简介*/
  495 +.teacherInfoData{
  496 + color:#3cc3f5;
  497 + font-size: 16px;
  498 + margin-bottom:30px;
415 } 499 }
416 -.am-modal .am-modal-bd-file .push-file .file-ul{  
417 - width: 398px;  
418 - height: 224px;  
419 - overflow:hidden;  
420 - 500 +.teacherInfoName{
  501 + padding-right:30px;
421 } 502 }
422 -.file-ul li{  
423 - height: 16px;  
424 - line-height: 16px;  
425 - margin-top: 16px; 503 +/*底部*/
  504 +.footerBg{
  505 + width:100%;
  506 + height:180px;
  507 + background: #404040;
  508 + float: left;
426 } 509 }
427 -.file-ul li:nth-child(1){  
428 - margin-top: 20px; 510 +.footer{
  511 + width:1220px;
  512 + height:180px;
  513 + left: 0;
  514 + right: 0;
  515 + margin: 0 auto;
429 } 516 }
430 -.file-ul li span:nth-child(1){  
431 - float: left;  
432 - margin:0 10px 0 30px;  
433 -  
434 517
  518 +.footerLeft{
  519 + float: left;
  520 +}
  521 +.footerLeftList{
  522 + padding-top:70px;
435 } 523 }
436 -.file-ul li span:nth-child(2){ 524 +.footerLeftListMsg{
437 float: left; 525 float: left;
438 - margin:0 10px; 526 + color:#ccc;
  527 + padding-right:6px;
439 font-size: 12px; 528 font-size: 12px;
440 - color: #333333;  
441 -}  
442 -.file-ul li span:nth-child(3){  
443 - float: right;  
444 - margin-right: 30px;  
445 cursor: pointer; 529 cursor: pointer;
446 } 530 }
  531 +.copyrightMsg{
  532 + color: #999999;
  533 + font-size: 12px;
  534 + float: left;
  535 + padding-top:20px;
  536 +}
447 537
448 -.middle{  
449 - position: relative;  
450 - height: 100%;  
451 - /*bottom: 10px;*/  
452 - -webkit-box-sizing: border-box;  
453 - -moz-box-sizing: border-box;  
454 - box-sizing: border-box;  
455 - border-radius: 3px;  
456 - background: #353537;  
457 - overflow-x: hidden;  
458 - overflow-y: hidden;  
459 - margin-left: 10px; 538 +/*注册*/
  539 +.userSignBox{
  540 + width:100%;
  541 + height:100%;
  542 + background: rgba(0, 0, 0, .7);
  543 + position: absolute;
  544 + left:0;
  545 + top:0;
460 } 546 }
461 -.docBox{  
462 - position: absolute;  
463 - /*top: 10px;*/  
464 - top: 0px;  
465 - width: 100%;  
466 - bottom: 43px;  
467 -}  
468 -.doc{  
469 - position: absolute;  
470 - left:0;  
471 - top:0;  
472 - bottom: 52px;  
473 - width: 100%;  
474 - height: 100%;  
475 -}  
476 -.docView{  
477 - position: absolute;  
478 - left:0;  
479 - top:0;  
480 - bottom: 52px;  
481 - cursor: default;  
482 -}  
483 -.framePPT{  
484 - position: absolute;  
485 - left:0;  
486 - top:0;  
487 - bottom: 52px;  
488 - cursor: default;  
489 - width: 100%;  
490 - height: 100%;  
491 -}  
492 -.canvasContent{  
493 - position: absolute;  
494 - left:0;  
495 - top:0;  
496 - bottom: 52px;  
497 - cursor: default;  
498 - /*cursor: Crosshair;*/  
499 - /*width: 100%;*/  
500 - /*height: 100%;*/  
501 - /*width: 600px;*/  
502 -}  
503 -.laserBoard{  
504 - position: absolute;  
505 - left:0;  
506 - top:0;  
507 - bottom: 52px;  
508 - cursor: default;  
509 - /*cursor: Crosshair;*/  
510 - width: 100%;  
511 - height: 100%;  
512 - /*width: 600px;*/  
513 -}  
514 -  
515 -.laserRed{  
516 - /*display: none;*/  
517 - position: absolute;  
518 - left:0;  
519 - top:0;  
520 - width: 20px;  
521 - height: 20px;  
522 - background: url(../images/tool/pen.png) no-repeat;  
523 -}  
524 -.foldDrawToolOut{  
525 - position: absolute;  
526 - top: 0;  
527 - left: 0;  
528 - width: 85px;  
529 - height: 16px;  
530 - border: none;  
531 -  
532 -}  
533 -  
534 -.foldDrawToolOut .foldDrawTool{  
535 - position: absolute;  
536 - /*top: 10px;*/  
537 - top: 0px;  
538 - left: 0;  
539 - width: 40px;  
540 - height: 16px;  
541 - background-color: #3d3d3d;  
542 - border: 1px solid #2f2f30;  
543 - border-bottom: 0px;  
544 - cursor: pointer;  
545 -}  
546 -.foldDrawTool .arrowTop{  
547 - display: block;  
548 - width: 0;  
549 - height: 0;  
550 - position: absolute;  
551 - left: 16px;  
552 - top: 4px;  
553 - border-left: 4px solid transparent;  
554 - border-right: 5px solid transparent;  
555 - border-bottom: 6px solid #fff;  
556 -}  
557 -.foldDrawTool .arrowBottom{  
558 - display: none;  
559 - width: 0;  
560 - height: 0;  
561 - border-left: 4px solid transparent;  
562 - border-right: 5px solid transparent;  
563 - border-top: 6px solid #fff;  
564 - position: absolute;  
565 - left: 16px;  
566 - top: 4px;  
567 -}  
568 -.foldDrawToolOut .unfoldDrawTool{  
569 - position: absolute;  
570 - top: 10px;  
571 - left: 45px;  
572 - width: 40px;  
573 - height: 16px;  
574 - background-color: #3d3d3d;  
575 - border-bottom-left-radius: 3px;  
576 - border-bottom-right-radius: 3px;  
577 - cursor: pointer;  
578 -}  
579 -.drawTool{  
580 - position: absolute;  
581 - left: 0;  
582 - /*top: 27px;*/  
583 - top: 17px;  
584 - width: 40px;  
585 - line-height: 210px;  
586 - background-color: #474749;  
587 - border: 1px solid #2f2f30;  
588 - border-bottom-right-radius: 3px;  
589 - border-top: 0px;  
590 - z-index: 1;  
591 -}  
592 -.toolColor{  
593 - display: none;  
594 - position: absolute;  
595 - top: 0px;  
596 - left: 41px;  
597 - width: 40px;  
598 - height: 210px;  
599 - line-height: 210px;  
600 - background-color: #474749;  
601 - border: 1px solid #2f2f30;  
602 - border-bottom-right-radius: 3px;  
603 - border-top: 0px;  
604 - z-index: 0;  
605 -}  
606 -.toolForm{  
607 - display: none;  
608 - position: absolute;  
609 - top: 0px;  
610 - left: 41px;  
611 - width: 40px;  
612 - height: 250px;  
613 - line-height: 250px;  
614 - background-color: #474749;  
615 - border: 1px solid #2f2f30;  
616 - border-bottom-right-radius: 3px;  
617 - border-top: 0px;  
618 - z-index: 0;  
619 -}  
620 -.toolColorList{  
621 - float: left;  
622 - width: 28px;  
623 - height: 28px;  
624 - cursor: pointer;  
625 - list-style: none;  
626 - border-radius: 0;  
627 -}  
628 -.toolColor .redColor {  
629 - margin: 20px 0 20px 6px;  
630 - background: url(../images/colorRed.png) no-repeat;  
631 -}  
632 -.toolColor .blueColor {  
633 - margin: 0px 0 20px 6px;  
634 - background: url(../images/colorBlue.png) no-repeat;  
635 -}  
636 -.toolColor .purpleColor {  
637 - margin: 0px 0 20px 6px;  
638 - background: url(../images/colorPurple.png) no-repeat;  
639 -}  
640 -.toolColor .yellowColor {  
641 - margin-left:6px;  
642 - background: url(../images/colorYellow.png) no-repeat;  
643 -}  
644 -.toolForm{  
645 - top: 50px;  
646 -}  
647 -.straightBrush{  
648 - margin: 20px 0 20px 10px;  
649 - background: url(../images/tool/line.png) no-repeat;  
650 -}  
651 -.circleBrush{  
652 - margin: 0px 0 20px 10px;  
653 - background: url(../images/tool/-circle.png) no-repeat;  
654 -}  
655 -.curveBrush{  
656 - margin: 5px 0 10px 10px;  
657 - background: url(../images/tool/curve.png) no-repeat;  
658 -}  
659 -.squareBrush{  
660 - margin: 0px 0 20px 10px;  
661 - background: url(../images/tool/tetragonum.png) no-repeat;  
662 -}  
663 -.customBrush{  
664 - margin-left:10px;  
665 - background: url(../images/tool/custom.png) no-repeat;  
666 -}  
667 -.brushInfo{  
668 - float: left;  
669 - margin: 0px 0 20px 9px;  
670 - width: 28px;  
671 - height: 28px;  
672 - cursor: pointer;  
673 - list-style: none;  
674 - border-radius: 0;  
675 -}  
676 -.drawTool .showColor{  
677 - margin: 20px 0 20px 6px;  
678 - background: url(../images/colorRed.png) no-repeat;  
679 -}  
680 -.showForm{  
681 - display: none;  
682 - margin-left: 6px;  
683 - background: url(../images/tool/rectangle.png) no-repeat;  
684 - background-size: 100%;  
685 -}  
686 -.drawTool .pencil{  
687 - background: url(../images/tool/pencil.png) no-repeat;  
688 -}  
689 -.drawTool .rescind{  
690 - background: url(../images/tool/rescind.png) no-repeat;  
691 -}  
692 -.drawTool .laserPen{  
693 - background: url(../images/tool/laserPen.png) no-repeat;  
694 -}  
695 -.drawTool .clearContent{  
696 - background: url(../images/tool/clearContext.png) no-repeat;  
697 -}  
698 -  
699 -.botTurn{  
700 - position: absolute;  
701 - bottom: 0px;  
702 - height: 42px;  
703 - line-height: 42px;  
704 - width: 100%;  
705 - background: #414143;  
706 -}  
707 -  
708 -.next-page .nextPage{  
709 - float: right;  
710 - margin:12px 10px 0 0;  
711 - width: 20px;  
712 - height: 20px;  
713 - /*background:url("../images/right-normal.png") no-repeat;*/  
714 - border: 1px solid #ccc;  
715 - border-radius: 3px;  
716 - background: #333333;  
717 - position: relative;  
718 -}  
719 -.next-page .nextPage:active{  
720 - background: #595959;  
721 - border: 1px solid #595959;  
722 - border-radius: 3px;  
723 -}  
724 -  
725 -.next-page .nextPage .arrowRight{  
726 - width: 0;  
727 - height: 0;  
728 - border-top: 5px solid transparent;  
729 - border-left: 6px solid #CCC;  
730 - border-bottom: 4px solid transparent;  
731 - position: absolute;  
732 - left: 8px;  
733 - top: 5px;  
734 -}  
735 -.total-page{  
736 - float: right;  
737 - color: #CCCCCC;  
738 - font-size: 12px;  
739 - margin-top: 14px;  
740 - width: 14px;  
741 - height: 20px;  
742 - line-height: 20px;  
743 - text-align: center;  
744 - margin-right: 5px;  
745 -}  
746 -.total-page span{  
747 - font-size: 12px;  
748 - color: #ccc;  
749 -}  
750 -.bias{  
751 - float: right;  
752 - height: 42px;  
753 - line-height: 50px;  
754 - color: #ccc;  
755 -}  
756 -.cur-page{  
757 - float: right;  
758 - color: #CCCCCC;  
759 - font-size: 12px;  
760 - margin-left: 5px;  
761 - margin-top: 14px;  
762 - width: 14px;  
763 - height: 20px;  
764 - line-height: 20px;  
765 - text-align: center;  
766 -  
767 -}  
768 -.cur-page input{  
769 - float: right;  
770 - width: 20px;  
771 - height: 20px;  
772 - line-height: 20px;  
773 - opacity: 0.5;  
774 - color: white;  
775 - background: #333;  
776 - border: 0;  
777 - text-align: center;  
778 -}  
779 -  
780 -/*上一页*/  
781 -.prev .prevPage{  
782 - float: right;  
783 - margin-top: 12px;  
784 - width: 20px;  
785 - height: 20px;  
786 - /* background: url(../images/left-normal.png) no-repeat; */  
787 - background: #333;  
788 - cursor: pointer;  
789 - border: 1px solid #ccc;  
790 - border-radius: 3px;  
791 - position: relative;  
792 -}  
793 -.prev .prevPage:active{  
794 - background: #595959;  
795 - border: 1px solid #595959;  
796 - border-radius: 3px;  
797 -}  
798 -.prev .prevPage .arrowLeft{  
799 - width: 0px;  
800 - height: 0px;  
801 - border-top: 5px solid transparent;  
802 - border-right: 6px solid #ccc;  
803 - border-bottom: 4px solid transparent;  
804 - position: absolute;  
805 - left: 0px;  
806 - top: 0px;  
807 - margin: 6px;  
808 -}  
809 -  
810 -/*上一步/下一步动画*/  
811 -.pptNextStep{  
812 - float: right;  
813 - margin-right: 10px;  
814 - font-size: 20px;  
815 - color: #CCCCCC;  
816 - cursor: pointer;  
817 -}  
818 -  
819 -.pptPrevStep{  
820 - float: right;  
821 - margin-right: 10px;  
822 - font-size: 20px;  
823 - color: #CCCCCC;  
824 - cursor: pointer;  
825 -}  
826 -  
827 -  
828 -/*适应宽 高 正常*/  
829 -.setAdaptWH{  
830 - float: right;  
831 - margin-right: 10px;  
832 - font-size: 24px;  
833 - color: #CCCCCC;  
834 - cursor: pointer;  
835 - margin-top:2px;  
836 -}  
837 -.setAdaptWH:hover{  
838 - color: #e5e5e5;  
839 -}  
840 -.setAdaptWH:active{  
841 - color: #3498db;  
842 -}  
843 -.fitHeight{  
844 - margin-right: 20px;  
845 -}  
846 -.version{  
847 - float: left;  
848 - margin-left: 10px;  
849 - color: #666;  
850 - font-size: 10px;  
851 -}  
852 -.fold{  
853 - float: right;  
854 - position: relative;  
855 - width: 2px;  
856 - height: 100%;  
857 - /* background: bisque;  
858 - margin-left: 10px;  
859 - margin-left: 13px;*/  
860 -}  
861 -  
862 -.fold .expand{  
863 - display: none;  
864 - position: absolute;  
865 - right: 410px;  
866 - top: 42%;  
867 - left: 0;  
868 - width: 11px;  
869 - height: 130px;  
870 - line-height: 130px;  
871 - background-color: #474747;  
872 - color: #ffffff;  
873 - cursor: pointer;  
874 - border-top-left-radius: 50px;  
875 - border-bottom-left-radius: 50px;  
876 -}  
877 -/*新版flash的容器-垂直布局*/  
878 -.flashViewBoxV{  
879 - width:320px;  
880 - height:500px;  
881 -}  
882 -  
883 -.right{  
884 - float: right;  
885 - /*margin-right: 10px;*/  
886 - width: 320px;  
887 - height: 100%;  
888 - position: relative;  
889 -}  
890 -/*箭头*/  
891 -.arrowsBtn{  
892 - width: 11px;  
893 - height: 130px;  
894 - position: absolute;  
895 - left:0;  
896 - top:40%;  
897 -}  
898 -.arrowsBtn>div{  
899 - width: 11px;  
900 - height: 130px;  
901 - line-height: 130px;  
902 - background-color: #595959;  
903 - color: #ffffff;  
904 - cursor: pointer;  
905 - display: none;  
906 -}  
907 -.arrowsBtn .arrowsLeft{  
908 - border-top-right-radius: 50px;  
909 - border-bottom-right-radius: 50px;  
910 -}  
911 -.arrowsBtn .arrowsRight{  
912 - border-top-left-radius: 50px;  
913 - border-bottom-left-radius: 50px;  
914 -}  
915 -.arrowsLeft p, .arrowsRight p{  
916 - width:0px;  
917 - height:0px;  
918 - border:8px solid transparent;  
919 - top:45%;  
920 - position: absolute;  
921 -}  
922 -.arrowsLeft p{  
923 - border-left-color:#fff;  
924 -}  
925 -.arrowsRight p{  
926 - border-right-color:#fff;  
927 - left:-5px;  
928 -}  
929 -.videoWindow{  
930 - position: absolute;  
931 - /*right: 10px;*/  
932 - width: 320px;  
933 - height: 240px;  
934 - background: #474747;  
935 -}  
936 -.audioDivBox .audioBg{  
937 - position: absolute;  
938 - /*z-index: 4;*/  
939 - left: 0;  
940 - top: 0;  
941 - width: 320px;  
942 - height: 240px;  
943 - background: url(../images/audioing.png) no-repeat center center;  
944 - background-color: #474747;  
945 -}  
946 -  
947 -.videoWindow .replayVideo{  
948 - z-index: 2;  
949 -}  
950 -.videoWindow .videoDivBox{  
951 - position: absolute;  
952 - z-index: 1;  
953 - top: 0;  
954 - }  
955 -  
956 -.btnStopArea{  
957 - float: left;  
958 - width: 16px;  
959 - height: 29px;  
960 - margin-left: 26px;  
961 - position: relative;  
962 -}  
963 -.btnStopPublishVideo{  
964 - top: -4px;  
965 - left: 0px;  
966 - width: 16px;  
967 - height: 29px;  
968 - cursor: pointer;  
969 - background: url(../images/hangup.gif) no-repeat center center;  
970 - position: absolute;  
971 -}  
972 -.btnStopPublishAudio{  
973 - top: -4px;  
974 - left: 0px;  
975 - width: 16px;  
976 - height: 29px;  
977 - cursor: pointer;  
978 - background: url(../images/hangup.gif) no-repeat center center;  
979 - position: absolute;  
980 -}  
981 -.discussAndUsers{  
982 - position: absolute;  
983 - width: 320px;  
984 - top: 250px;  
985 - /*bottom: 10px;*/  
986 - bottom: 0px;  
987 - border-radius: 3px;  
988 - background: #474747;  
989 -}  
990 -/*右侧讨论和人员列表*/  
991 -.discussAndUsers .tabTitle{  
992 - position: absolute;  
993 - top:0;  
994 - left: 0;  
995 - width: 320px;  
996 - height: 32px;  
997 - color: #ffffff;  
998 - border-bottom:1px solid #666;  
999 - z-index: 1;  
1000 -}  
1001 -.tabTitle .select{  
1002 - border-bottom:1px solid #3498db;  
1003 -}  
1004 -.discussAndUsers .discussTitle{  
1005 - position: absolute;  
1006 - top: 0;  
1007 - left: 0;  
1008 - height: 32px;  
1009 - line-height: 32px;  
1010 - width: 40%;  
1011 - cursor: pointer;  
1012 - text-align: center;  
1013 - border-bottom:1px solid #3498db;  
1014 -}  
1015 -.discussTitle span:nth-of-type(2){  
1016 - margin-left: 16px;  
1017 -}  
1018 -.userListIcon{  
1019 - font-size: 14px;  
1020 -}  
1021 -.discussAndUsers .userListTitle{  
1022 - position: absolute;  
1023 - top: 0;  
1024 - left: 40%;  
1025 - height: 32px;  
1026 - line-height: 32px;  
1027 - width: 40%;  
1028 - border-bottom:1px solid #666;  
1029 - cursor: pointer;  
1030 - text-align: center;  
1031 -}  
1032 -  
1033 -.userListTitle span:nth-of-type(2){  
1034 - margin-left: 16px;  
1035 -}  
1036 -  
1037 -.discussAndUsers .tabCon{  
1038 - position: absolute;  
1039 - right: 0;  
1040 - top: 32px;  
1041 - bottom: 0;  
1042 - width: 320px;  
1043 - background: #474747;  
1044 - border-radius: 3px;  
1045 -}  
1046 -.discussAndUsers .curClassOn{  
1047 - overflow-y: scroll;  
1048 - overflow-x: hidden;  
1049 -}  
1050 -.discussAndUsers .curClassOn .curClassUserNum{  
1051 - position: absolute;  
1052 - left:0;  
1053 - top: 0;  
1054 - width: 310px;  
1055 - height: 32px;  
1056 - line-height: 32px;  
1057 - padding-left: 17px;  
1058 - border-bottom:1px solid #3b3b3b;  
1059 - color: #3498db;  
1060 - font-size: 14px;  
1061 -}  
1062 -.discussAndUsers .curClassOn .curClassUserList{  
1063 - position: absolute;  
1064 - left: 0;  
1065 - top:0;  
1066 - bottom: 0;  
1067 - width: 320px;  
1068 - background: #474747;  
1069 - border-radius: 3px;  
1070 -}  
1071 -.userAvatar{  
1072 - float:left;  
1073 - margin-left: 14px;  
1074 - color: #ccc;  
1075 - display: inline-block;  
1076 - margin-top: 11px;  
1077 - font-size: 16px;  
1078 - width:22px;  
1079 - height:20px;  
1080 -}  
1081 -.userInfo{  
1082 - float: left;  
1083 - margin-left: 13px;  
1084 - margin-top: 14px;  
1085 -}  
1086 -.nameDiv{  
1087 - float: left;  
1088 - font-size: 14px;  
1089 - width: 90px;  
1090 - height:16px;  
1091 - color: #ccc;  
1092 - overflow: hidden;  
1093 -}  
1094 -.userStatus{  
1095 - float: left;  
1096 - font-size: 10px;  
1097 - color:#999;  
1098 -}  
1099 -.discussAndUsers .selectdOn{  
1100 - display: block;  
1101 -}  
1102 -.discussAndUsers .curClassOn{  
1103 - bottom:10px;  
1104 -}  
1105 -.discussAndUsers .chat {  
1106 - position: absolute;  
1107 - right: 0px;  
1108 - top: 0px;  
1109 - bottom: 0;  
1110 - width: 320px;  
1111 - background: #474747;  
1112 - border-radius: 3px;  
1113 -}  
1114 -.discussAndUsers .chat .msg-border{  
1115 - position: absolute;  
1116 - border-top: none;  
1117 - border-left: none;  
1118 - border-bottom: none;  
1119 - width: 320px;  
1120 - bottom: 73px;  
1121 - top: 0px;  
1122 -}  
1123 -  
1124 -/* 设置滚动条的样式 */  
1125 -::-webkit-scrollbar {  
1126 - width: 8px;  
1127 - height: 8px;  
1128 - }  
1129 -/* 滚动槽 */  
1130 -::-webkit-scrollbar-track {  
1131 - /*-webkit-box-shadow: inset 0 0 4px #474749;*/  
1132 - border-radius: 10px;  
1133 - margin-right: 10px;  
1134 -}  
1135 -  
1136 -/* 滚动条滑块 */  
1137 -::-webkit-scrollbar-thumb {  
1138 - border-radius: 5px;  
1139 - width: 1px;  
1140 - background: #666;  
1141 - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);  
1142 -}  
1143 -  
1144 -::-webkit-scrollbar-thumb:window-inactive {  
1145 - background: #353536;  
1146 -}  
1147 -  
1148 -  
1149 -  
1150 -.discussAndUsers .chat .msg {  
1151 - position: absolute;  
1152 - top: 0;  
1153 - bottom: 0;  
1154 - width: 320px;  
1155 - background: #474747;  
1156 - overflow-y: scroll;  
1157 -  
1158 - padding: 10px 0 0 0;  
1159 -}  
1160 -.discussAndUsers .chat .msg .teacher-msg{  
1161 - float: left;  
1162 - margin-top: 10px;  
1163 - margin-bottom: 10px;  
1164 - margin-left: 10px;  
1165 - width: 100%;  
1166 - height: 30px;  
1167 - /*border: 1px solid #000000;*/  
1168 -}  
1169 -.discussAndUsers .chat .msg .teacher-msg .teaImg{  
1170 - float: left;  
1171 -}  
1172 -.discussAndUsers .chat .msg .teacher-msg p {  
1173 - position: relative;  
1174 - float: left;  
1175 - padding: 8px;  
1176 - font-size: 12px;  
1177 - color: #333333;  
1178 - background: white;  
1179 - margin-left: 16px;  
1180 - border-radius: 8px;  
1181 - display: inline-block;  
1182 - min-width: 98px;  
1183 - max-width: 100%;  
1184 - border: 1px solid #d7d7d7;  
1185 -  
1186 -}  
1187 -.discussAndUsers .chat .msg .teacher-msg p img:nth-of-type(1){  
1188 - text-align: left;  
1189 - float: none;  
1190 -  
1191 -}  
1192 -.discussAndUsers .chat .msg .teacher-msg p.left::after{  
1193 - top: 4px;  
1194 - left: -7px;  
1195 -}  
1196 -.chat .msg .teacher-msg p::after{  
1197 - content: "";  
1198 - position: absolute;  
1199 - float: left;  
1200 - left: -8px;  
1201 - bottom: 18px;  
1202 - display: block;  
1203 - width: 10px;  
1204 - height: 10px;  
1205 - background: url(../images/arrow.png) 50% 50%;  
1206 -}  
1207 -  
1208 -.chat .msg .student-msg{  
1209 -  
1210 - float: right;  
1211 - margin-top: 10px;  
1212 - margin-bottom: 10px;  
1213 - width: 100%;  
1214 - height: 30px;  
1215 -  
1216 -}  
1217 -.chat .msg .student-msg .stuImg{  
1218 - float: right;  
1219 - margin-right: 8px;  
1220 -}  
1221 -.chat .msg .student-msg p {  
1222 - position: relative;  
1223 - float: right;  
1224 - padding: 8px;  
1225 - font-size: 12px;  
1226 - color: #333333;  
1227 - background: white;  
1228 - margin-right: 16px;  
1229 - border-radius: 8px;  
1230 - display: inline-block;  
1231 - min-width: 98px;  
1232 - max-width: 280px;  
1233 - border: 1px solid #d7d7d7;  
1234 - text-align: left;  
1235 -}  
1236 -.chat .msg .student-msg p.right::after{  
1237 - top: 4px;  
1238 - right: -7px;  
1239 -  
1240 -}  
1241 -.chat .msg .student-msg p::after{  
1242 - content: "";  
1243 - position: absolute;  
1244 - right: -8px;  
1245 - bottom: 18px;  
1246 - float: right;  
1247 - display: block;  
1248 - width: 10px;  
1249 - height: 10px;  
1250 - background: url(../images/arrow-r.png) 50% 50%;  
1251 -}  
1252 -.chat .msg .student-msg p img:nth-of-type(1){  
1253 - text-align: left;  
1254 - float: none;  
1255 -  
1256 -}  
1257 -  
1258 -/*liaotian*/  
1259 -.message img{  
1260 - width: 24px;  
1261 - height: 24px;  
1262 -}  
1263 -.message_client{  
1264 - margin-top: 5px;  
1265 - margin-bottom: 5px;  
1266 - overflow: hidden;  
1267 -  
1268 -}  
1269 -.chat .teaNameBox{  
1270 - float: left;  
1271 - margin-top: 3px;  
1272 - margin-right: 14px;  
1273 -}  
1274 -.chat .teaName{  
1275 - font-size: 12px;  
1276 - margin-left: 21px;  
1277 - color: #ffffff;  
1278 - display: block;  
1279 - height: 20px;  
1280 - margin-right: 290px;  
1281 - white-space: nowrap;  
1282 - word-break: keep-all;  
1283 -}  
1284 -.chat .stuName{  
1285 - display: block;  
1286 - font-size: 12px;  
1287 - margin-right: 15px;  
1288 - margin-left: 289px;  
1289 - color: #ffffff;  
1290 - /* width: 58px; */  
1291 - height: 20px;  
1292 - white-space: nowrap;  
1293 - word-break: keep-all;  
1294 -}  
1295 -.chat .stuNameBox{  
1296 - float: right;  
1297 - margin-top: 3px;  
1298 - margin-left: 46px;  
1299 -}  
1300 -.chat .message_client .message {  
1301 - font-size: 12px;  
1302 - color: #fff;  
1303 - margin-top: 5px;  
1304 - line-height: 20px;  
1305 -}  
1306 -  
1307 -.triangle-isosceles {  
1308 - position: relative;  
1309 - bottom: 2px;  
1310 - padding: 6px 10px 6px 10px;  
1311 - border-radius: 5px;  
1312 - display: inline-block;  
1313 - /*min-width: 20px;*/  
1314 - max-width:75%;  
1315 - word-break: break-all;  
1316 -}  
1317 -.stutriangle-isosceles {  
1318 - float:right;  
1319 - position: relative;  
1320 - bottom: 2px;  
1321 - padding: 6px 10px 6px 10px;  
1322 - border-radius: 5px;  
1323 - display: inline-block;  
1324 - /*min-width: 20px;*/  
1325 - max-width:81%;  
1326 - word-break: break-all;  
1327 -}  
1328 -.triangle-isosceles.leftmsg{  
1329 - margin-left: 0px;  
1330 - /*background: white;*/  
1331 - /*border: 1px solid #d7d7d7;*/  
1332 - background: #585859;  
1333 -  
1334 -}  
1335 -.stutriangle-isosceles.rightmsg{  
1336 - margin-left: 8px;  
1337 - background: #3498db;  
1338 - /*border: 1px solid #d7d7d7;*/  
1339 -}  
1340 -  
1341 -.triangle-isosceles.leftmsg:after {  
1342 - top: 6px;  
1343 - left: -8px;  
1344 - transform: rotate(294deg);  
1345 - -ms-transform: rotate(294deg);  
1346 - -moz-transform: rotate(294deg);  
1347 - -webkit-transform: rotate(294deg);  
1348 - -o-transform: rotate(294deg);  
1349 -  
1350 -}  
1351 -.stutriangle-isosceles.rightmsg:after {  
1352 - top: 6px;  
1353 - right: -8px;  
1354 - transform: rotate(76deg);  
1355 - -ms-transform: rotate(76deg);  
1356 - -moz-transform: rotate(76deg);  
1357 - -webkit-transform: rotate(76deg);  
1358 - -o-transform: rotate(76deg);  
1359 -}  
1360 -.triangle-isosceles:after {  
1361 - content: "";  
1362 - position: absolute;  
1363 - display: block;  
1364 - width: 10px;  
1365 - height: 10px;  
1366 - background: url(../images/arrow-r.png) no-repeat;  
1367 -}  
1368 -.stutriangle-isosceles:after {  
1369 - content: "";  
1370 - position: absolute;  
1371 - display: block;  
1372 - width: 10px;  
1373 - height: 10px;  
1374 - background: url(../images/arrow.png) no-repeat;  
1375 -}  
1376 -  
1377 -  
1378 -  
1379 -  
1380 -  
1381 -.input-send{  
1382 - position: absolute;  
1383 - bottom: 0px;  
1384 - width: 320px;  
1385 - height: 72px;  
1386 - border-top: 1px solid #666;  
1387 -  
1388 -}  
1389 -.input-send .face{  
1390 - float: left;  
1391 - font-size: 18px;  
1392 - color: #ccc;  
1393 - margin-left: 10px;  
1394 - margin-top: 9px;  
1395 - margin-bottom: 3px;  
1396 - cursor: pointer;  
1397 -}  
1398 -.input-send .face:hover{  
1399 - color:#e5e5e5;  
1400 -}  
1401 -.input-send .face:active{  
1402 - color:#fff  
1403 -}  
1404 -  
1405 -/*全体禁言默认样式*/  
1406 -.input-send .bannedBtn{  
1407 - width: 19px;  
1408 - height:17px;  
1409 - float: left;  
1410 - cursor: pointer;  
1411 - margin: 11px 0 -2px 10px;  
1412 - background: url(../images/banned/chat-normal.png) no-repeat;  
1413 - background-size: 100% 100%;  
1414 -}  
1415 -/*.input-send .bannedBtn:hover{*/  
1416 - /*background: url(../images/banned/chat-normal.png) no-repeat;*/  
1417 - /*background-size: 100%;*/  
1418 -/*}*/  
1419 -  
1420 -/*全体禁言中的样式*/  
1421 -.input-send .relieveBanned{  
1422 - width: 20px;  
1423 - height:20px;  
1424 - float: left;  
1425 - cursor: pointer;  
1426 - margin: 11px -1px -3px 10px;;  
1427 - background: url(../images/banned/-silenced-normal.png) no-repeat;  
1428 - background-size: 100%;  
1429 -}  
1430 -.input-send .relieveBanned:hover{  
1431 - background: url(../images/banned/-silenced-hover.png) no-repeat;  
1432 - background-size: 100%;  
1433 -}  
1434 -.input-face{  
1435 - width: 243px;  
1436 - height: 26px;  
1437 - line-height: 21px;  
1438 - float: left;  
1439 - border: none;  
1440 - margin-top: 6px;  
1441 - margin-left:10px;  
1442 - background: #fafafa;  
1443 -  
1444 -}  
1445 -  
1446 -.chat .input-face input {  
1447 - height: 26px;  
1448 - line-height: 26px;  
1449 - width: 235px;  
1450 - border: none;  
1451 - text-decoration: none;  
1452 - outline-style: none;  
1453 - background: #6a6a6c;  
1454 - color: #ffffff;  
1455 - font-size: 12px;  
1456 - padding-left: 5px;  
1457 - padding-right: 5px;  
1458 -}  
1459 -  
1460 -.input-send .send {  
1461 - float: right;  
1462 - width: 46px;  
1463 - height: 26px;  
1464 - font-size: 12px;  
1465 - border-radius: 2px;  
1466 - border: none;  
1467 - background: #3598db;  
1468 - color: #fff;  
1469 - margin-top: 38px;  
1470 - margin-right: 10px;  
1471 - cursor: pointer;  
1472 -  
1473 -}  
1474 -.input-send .send:hover{  
1475 - background: #57b2ee;  
1476 -}  
1477 -.input-send .send:active{  
1478 - background: #318ecc;  
1479 -}  
1480 -  
1481 -/*表情*/  
1482 -  
1483 -.swiper-container {  
1484 - position: absolute;  
1485 - width: 320px;  
1486 - height: 153px;  
1487 - bottom: 44px;  
1488 - left: 0;  
1489 - z-index: 1100;  
1490 - overflow: hidden;  
1491 -}  
1492 -  
1493 -.inner-slide {  
1494 - position: absolute;  
1495 - top: 0;  
1496 - left: 0;  
1497 - width:640px;  
1498 - height: 153px;  
1499 -}  
1500 -.inner-slide img{  
1501 - width: 26px;  
1502 - height: 26px;  
1503 - -webkit-font-smoothing:antialiased;  
1504 -}  
1505 -  
1506 -.inner-slide .swiper-slide {  
1507 - float: left;  
1508 - width: 320px;  
1509 - height: 153px;  
1510 -}  
1511 -  
1512 -.tiplist {  
1513 - position: absolute;  
1514 - right: 0px;  
1515 - bottom: 0;  
1516 - overflow: hidden;  
1517 - width: 320px;  
1518 - height: 14px;  
1519 -  
1520 -  
1521 -}  
1522 -  
1523 -.tiplist li:nth-child(1) {  
1524 - float: left;  
1525 - margin-left: 141px;  
1526 - width: 8px;  
1527 - height: 8px;  
1528 - left: 100px;  
1529 - cursor: pointer;  
1530 - background: #999;  
1531 - border-radius: 50%;  
1532 -}  
1533 -.tiplist li:nth-child(2) {  
1534 - float: left;  
1535 - margin-left: 15px;  
1536 - width: 8px;  
1537 - height: 8px;  
1538 - left: 100px;  
1539 - cursor: pointer;  
1540 - background: #999;  
1541 - border-radius: 50%;  
1542 -}  
1543 -  
1544 -.tiplist li.bg {  
1545 - background: #ff6600;  
1546 -}  
1547 -.swiper-slide {  
1548 - text-align: center;  
1549 - font-size: 18px;  
1550 - background: #fff;  
1551 - /* Center slide text vertically */  
1552 - display: -webkit-box;  
1553 - display: -ms-flexbox;  
1554 - display: -webkit-flex;  
1555 - display: flex;  
1556 - -webkit-box-pack: center;  
1557 - -ms-flex-pack: center;  
1558 - -webkit-justify-content: center;  
1559 - justify-content: center;  
1560 - -webkit-box-align: center;  
1561 - -ms-flex-align: center;  
1562 - -webkit-align-items: center;  
1563 - align-items: center;  
1564 - position: relative;  
1565 - width: 320px;  
1566 -  
1567 -}  
1568 -  
1569 -.swiper-slide ul {  
1570 - display: inline-block;  
1571 - width: 100%;  
1572 - white-space: normal;  
1573 - padding-left: 0;  
1574 -}  
1575 -  
1576 -.swiper-slide li {  
1577 - display: inline-block;  
1578 - width: 10%;  
1579 - height: 30px;  
1580 - text-align: center;  
1581 - line-height: 30px;  
1582 - float: left;  
1583 - margin-left: 7px;  
1584 - cursor: pointer;  
1585 -}  
1586 -/*帮助弹出框*/  
1587 -.helpBox{  
1588 - display: none;  
1589 - position: absolute;  
1590 - top: 12%;  
1591 - left: 33%;  
1592 - width: 398px;  
1593 - height: 298px;  
1594 - background: white;  
1595 - z-index: 4;  
1596 -}  
1597 -.helpBox .helpHeadline{  
1598 - height: 32px;  
1599 - line-height: 32px;  
1600 - background: #3b3b3b;  
1601 -}  
1602 -.helpBox .helpHeadline .helpHeadlineTitle{  
1603 - position: absolute;  
1604 - left: 14px;  
1605 - color: #fff;  
1606 -}  
1607 -.helpBox .helpHeadline a{  
1608 - position: absolute;  
1609 - top: 0;  
1610 - right: 14px;  
1611 - color: #ffffff;  
1612 -}  
1613 -.helpBox .helpHeadline a:hover{  
1614 - color: #CCCCCC;  
1615 -}  
1616 -.helpBox .helpHeadline a:active{  
1617 - color: #3b3b3b;  
1618 -}  
1619 -.helpContent{  
1620 - height: 266px;  
1621 - width: 398px;  
1622 - background-color: #4f4e53;  
1623 - overflow-x: hidden;  
1624 -}  
1625 -  
1626 -/*结束课堂弹出框*/  
1627 -.endClassBox{  
1628 - display: none;  
1629 - position: absolute;  
1630 - top: 35%;  
1631 - left: 33%;  
1632 - width: 370px;  
1633 - height: 174px;  
1634 - background: white;  
1635 - z-index: 5;  
1636 - border-radius: 3px;  
1637 -}  
1638 -.endClassBox .endClassHeadline{  
1639 - height: 40px;  
1640 - line-height: 40px;  
1641 - background: #3b3b3b;  
1642 -}  
1643 -.endClassBox .endClassHeadline .endClassHeadlineTitle{  
1644 - position: absolute;  
1645 - left: 14px;  
1646 - color: #fff;  
1647 - font-size: 12px;  
1648 -}  
1649 -.endClassBox .endClassHeadline a{  
1650 - position: absolute;  
1651 - top: 0;  
1652 - right: 14px;  
1653 - color: #ffffff;  
1654 -}  
1655 -.endClassBox .endClassHeadline a:hover{  
1656 - color: #CCCCCC;  
1657 -}  
1658 -.endClassBox .endClassHeadline a:active{  
1659 - color: #3b3b3b;  
1660 -}  
1661 -.endClassContent{  
1662 - height: 134px;  
1663 - width: 370px;  
1664 - background-color: #4f4e53;  
1665 - overflow-x: hidden;  
1666 -}  
1667 -.endClassContent .endClassText{  
1668 - font-size: 14px;  
1669 - color: #fff;  
1670 - text-align: center;  
1671 - margin-top: 28px;  
1672 - line-height: 14px;  
1673 - position: absolute;  
1674 - left: 50%;  
1675 - top: 40px;  
1676 - width: 200px;  
1677 - margin-left: -100px;  
1678 -}  
1679 -.endClassContent .endClassEnsure{  
1680 - width: 70px;  
1681 - height: 32px;  
1682 - background: #999;  
1683 - border: 0;  
1684 - margin-left: 72px;  
1685 - margin-top: 77px;  
1686 - cursor: pointer;  
1687 - color: #fff;  
1688 - border-radius: 3px;  
1689 -}  
1690 -.endClassContent .endClassCancel{  
1691 - width: 70px;  
1692 - height: 32px;  
1693 - background: #3498db;  
1694 - border: 0;  
1695 - margin-top: 77px;  
1696 - margin-left: 93px;  
1697 - cursor: pointer;  
1698 - color: #fff;  
1699 - border-radius: 3px;  
1700 -}  
1701 -  
1702 -/*结束屏幕共享弹出框*/  
1703 -.endShareBox{  
1704 - display: none;  
1705 - position: absolute;  
1706 - top: 35%;  
1707 - left: 33%;  
1708 - width: 370px;  
1709 - height: 174px;  
1710 - background: white;  
1711 - z-index: 5;  
1712 - border-radius: 3px;  
1713 -}  
1714 -.endShareBox .endShareHeadline{  
1715 - height: 40px;  
1716 - line-height: 40px;  
1717 - background: #3b3b3b;  
1718 -}  
1719 -.endShareBox .endShareHeadline .endShareHeadlineTitle{  
1720 - position: absolute;  
1721 - left: 14px;  
1722 - color: #fff;  
1723 - font-size: 12px;  
1724 -}  
1725 -.endShareBox .endShareHeadline a{  
1726 - position: absolute;  
1727 - top: 0;  
1728 - right: 14px;  
1729 - color: #ffffff;  
1730 -}  
1731 -.endShareBox .endShareHeadline a:hover{  
1732 - color: #CCCCCC;  
1733 -}  
1734 -.endShareBox .endShareHeadline a:active{  
1735 - color: #3b3b3b;  
1736 -}  
1737 -.endShareContent{  
1738 - height: 134px;  
1739 - width: 370px;  
1740 - background-color: #4f4e53;  
1741 - overflow-x: hidden;  
1742 -}  
1743 -.endShareContent .endShareText{  
1744 - font-size: 14px;  
1745 - color: #fff;  
1746 - text-align: center;  
1747 - margin-top: 28px;  
1748 - line-height: 14px;  
1749 - position: absolute;  
1750 - left: 50%;  
1751 - top: 40px;  
1752 - width: 200px;  
1753 - margin-left: -100px;  
1754 -}  
1755 -.endShareContent .endShareEnsure{  
1756 - width: 70px;  
1757 - height: 32px;  
1758 - background: #999;  
1759 - border: 0;  
1760 - margin-left: 72px;  
1761 - margin-top: 77px;  
1762 - cursor: pointer;  
1763 - color: #fff;  
1764 - border-radius: 3px;  
1765 -}  
1766 -.endShareContent .endShareCancel{  
1767 - width: 70px;  
1768 - height: 32px;  
1769 - background: #3498db;  
1770 - border: 0;  
1771 - margin-top: 77px;  
1772 - margin-left: 93px;  
1773 - cursor: pointer;  
1774 - color: #fff;  
1775 - border-radius: 3px;  
1776 -}  
1777 -  
1778 -/*退出课堂弹出框*/  
1779 -.exitClassBox{  
1780 - display: none;  
1781 - position: absolute;  
1782 - top: 35%;  
1783 - left: 33%;  
1784 - width: 370px;  
1785 - height: 174px;  
1786 - background: white;  
1787 - z-index: 506;  
1788 - border-radius: 3px;  
1789 -}  
1790 -.exitClassBox .exitClassHeadline{  
1791 - height: 40px;  
1792 - line-height: 40px;  
1793 - background: #3b3b3b;  
1794 -}  
1795 -.exitClassBox .exitClassHeadline .exitClassHeadlineTitle{  
1796 - position: absolute;  
1797 - left: 14px;  
1798 - color: #fff;  
1799 - font-size: 12px;  
1800 -}  
1801 -.exitClassBox .exitClassHeadline a{  
1802 - position: absolute;  
1803 - top: 0;  
1804 - right: 14px;  
1805 - color: #ffffff;  
1806 -}  
1807 -.exitClassBox .exitClassHeadline a:hover{  
1808 - color: #CCCCCC;  
1809 -}  
1810 -.exitClassBox .exitClassHeadline a:active{  
1811 - color: #3b3b3b;  
1812 -}  
1813 -.exitClassContent{  
1814 - height: 134px;  
1815 - width: 370px;  
1816 - background-color: #4f4e53;  
1817 - overflow-x: hidden;  
1818 -}  
1819 -.exitClassContent .exitClassText{  
1820 - font-size: 14px;  
1821 - color: #fff;  
1822 - text-align: center;  
1823 - margin-top: 28px;  
1824 - line-height: 15px;  
1825 - position: absolute;  
1826 - left: 50%;  
1827 - top: 22%;  
1828 - width: 200px;  
1829 - margin-left: -100px;  
1830 -}  
1831 -.exitClassContent .exitClassEnsure{  
1832 - width: 70px;  
1833 - height: 32px;  
1834 - background: #999;  
1835 - border: 0;  
1836 - margin-left: 72px;  
1837 - margin-top: 78px;  
1838 - cursor: pointer;  
1839 - color: #fff;  
1840 - border-radius: 3px;  
1841 -}  
1842 -.exitClassContent .exitClassCancel{  
1843 - width: 70px;  
1844 - height: 32px;  
1845 - background: #3498db;  
1846 - border: 0;  
1847 - margin-top: 78px;  
1848 - margin-left: 93px;  
1849 - cursor: pointer;  
1850 - color: #fff;  
1851 - border-radius: 3px;  
1852 -}  
1853 -  
1854 -  
1855 -  
1856 - /*弹出框列表样式*/  
1857 -.listModal{  
1858 - display: none;  
1859 - position: absolute;  
1860 - top: 12%;  
1861 - left: 33%;  
1862 - width: 398px;  
1863 - height: 298px;  
1864 - background: white;  
1865 - z-index: 5;  
1866 -}  
1867 -.listModal .listHeadline{  
1868 - height: 40px;  
1869 - line-height: 40px;  
1870 - background: #3b3b3b;  
1871 -}  
1872 -.listModal .listHeadline .listHeadlineTitle{  
1873 - position: absolute;  
1874 - left: 14px;  
1875 - color: #ccc;  
1876 - font-size: 14px;  
1877 -}  
1878 -.listModal .listHeadline a{  
1879 - position: absolute;  
1880 - top: 0;  
1881 - right: 14px;  
1882 - color: #ccc;  
1883 -}  
1884 -.listModal .listHeadline a:hover{  
1885 - color: #CCCCCC;  
1886 -}  
1887 -.listModal .listHeadline a:active{  
1888 - color: #3b3b3b;  
1889 -}  
1890 -  
1891 -/*!*文件列表中的样式*!*/  
1892 -/*.fileContent{*/  
1893 - /*height: 266px;*/  
1894 - /*width: 398px;*/  
1895 - /*background-color: #4f4e53;*/  
1896 - /*overflow: scroll;*/  
1897 - /*overflow-x: hidden;*/  
1898 -/*}*/  
1899 -/*.fileContent div{*/  
1900 - /*height: 36px;*/  
1901 - /*line-height: 36px;*/  
1902 -/*}*/  
1903 -/*.fileContent div:nth-of-type(1){*/  
1904 - /*padding-top: 18px;*/  
1905 -/*}*/  
1906 -/*.fileContent label:nth-of-type(1){*/  
1907 - /*float: left;*/  
1908 - /*margin-left: 30px;*/  
1909 - /*color: #ccc;*/  
1910 -  
1911 -/*}*/  
1912 -/*.fileContent label:nth-of-type(2){*/  
1913 - /*float: left;*/  
1914 - /*display: inline-block;*/  
1915 - /*width: 249px;*/  
1916 -  
1917 - /*margin-left: 16px;*/  
1918 - /*color: #ccc;*/  
1919 - /*cursor: pointer;*/  
1920 - /*white-space: nowrap;*/  
1921 - /*overflow: hidden;*/  
1922 - /*text-overflow: ellipsis;*/  
1923 -  
1924 -  
1925 -/*}*/  
1926 -/*.fileContent label:nth-of-type(3){*/  
1927 - /*float: right;*/  
1928 - /*margin-right: 36px;*/  
1929 - /*color: #ccc;*/  
1930 - /*cursor: pointer;*/  
1931 -  
1932 -/*}*/  
1933 -  
1934 -  
1935 -/*媒体共享文件列表*/  
1936 -.mediaFileContentBox{  
1937 - position: relative;  
1938 - height: 266px;  
1939 - width: 398px;  
1940 - background-color: #4f4e53;  
1941 - overflow-x: hidden;  
1942 -}  
1943 -.mediaFileContentBox .mediaFileContentMenu{  
1944 - position: absolute;  
1945 - left: 10px;  
1946 - height: 45px;  
1947 - width: 380px;  
1948 - border-bottom: 1px solid #666;  
1949 -}  
1950 -.mediaFileContentBox .mediaFileContentMenu .mediaFileContentTxt{  
1951 - position: absolute;  
1952 - bottom: 3px;  
1953 - font-size: 12px;  
1954 - color: #ccc;  
1955 - left: 5px;  
1956 -}  
1957 -.mediaFileContentBox .mediaFileContentMenu .mediaFileContentMenuSpan{  
1958 - position: absolute;  
1959 - right: 0;  
1960 - top: 10px;  
1961 - width: 64px;  
1962 - height: 28px;  
1963 - line-height: 28px;  
1964 - overflow: hidden;  
1965 - background: #3A9AD9;  
1966 - border-radius: 2px;  
1967 - cursor: pointer;  
1968 - color: #ffffff;  
1969 -}  
1970 -.mediaFileContentBox .mediaFileContentMenu .mediaFileContentMenuLableIcon{  
1971 - font-size: 20px;  
1972 - left:5px;  
1973 - position: absolute;  
1974 -}  
1975 -.mediaFileContentBox .mediaFileContentMenu .mediaFileContentMenuLableTxt{  
1976 - font-size: 12px;  
1977 - position: absolute;  
1978 - left:25px;  
1979 -}  
1980 -.mediaFileContentBox .mediaFileContentMenu input{  
1981 - position: absolute;  
1982 - width: 124px;  
1983 - right: 10px;  
1984 - opacity: 0;  
1985 - cursor: pointer;  
1986 -}  
1987 -  
1988 -.mediaFileContent{  
1989 - position: absolute;  
1990 - top: 46px;  
1991 - height: 220px;  
1992 - width: 398px;  
1993 - background-color: #4f4e53;  
1994 - overflow: scroll;  
1995 - overflow-x: hidden;  
1996 -}  
1997 -.mediaFileContent div{  
1998 - margin-left: 10px;  
1999 - height: 36px;  
2000 - line-height: 36px;  
2001 -}  
2002 -.mediaFileContent div:hover{  
2003 - background: #666;  
2004 - height: 36px;  
2005 - line-height: 36px;  
2006 -}  
2007 -.mediaFileContent div:nth-of-type(1){  
2008 - /*padding-top: 18px;*/  
2009 -}  
2010 -.mediaFileContent label:nth-of-type(1){  
2011 - float: left;  
2012 - margin-left: 14px;  
2013 - color: #ccc;  
2014 -}  
2015 -.mediaFileContent label:nth-of-type(2){  
2016 - float: left;  
2017 - display: inline-block;  
2018 - width: 249px;  
2019 - font-size: 12px;  
2020 - margin-left: 5px;  
2021 - color: #ccc;  
2022 - cursor: pointer;  
2023 - white-space: nowrap;  
2024 - overflow: hidden;  
2025 - text-overflow: ellipsis;  
2026 -  
2027 -  
2028 -}  
2029 -.mediaFileContent label:nth-of-type(3){  
2030 - float: right;  
2031 - margin-right: 10px;  
2032 - color: #ccc;  
2033 - cursor: pointer;  
2034 -  
2035 -}  
2036 -  
2037 -  
2038 -/*加载转圈*/  
2039 -.spinnerMasker{  
2040 - display: none;  
2041 - position: absolute;  
2042 - z-index: 5;  
2043 - left: 0;  
2044 - bottom: 0;  
2045 - width: 100%;  
2046 - height: 100%;  
2047 - background: rgba(0, 0, 0, .7);  
2048 -}  
2049 -.spinner {  
2050 - z-index: 1;  
2051 - width: 33px;  
2052 - height: 33px;  
2053 - position: absolute;  
2054 - top: 40%;  
2055 - left:50%;  
2056 - margin-left:-11px;  
2057 -}  
2058 -.spinnerHtml{  
2059 - color:dodgerblue;  
2060 - position: absolute;  
2061 -/* top: 50%;*/  
2062 - left:50%;  
2063 - width:200px;  
2064 - text-align: center;  
2065 - margin-left:-100px;  
2066 -}  
2067 -.spinnerMask{  
2068 - width:300px;  
2069 - height:10px;  
2070 - border-radius:5px;  
2071 - background:rgba(0,0,0,.7);  
2072 - position: absolute;  
2073 - top:56%;  
2074 - left:50%;  
2075 - margin-left:-150px;  
2076 -}  
2077 -.exitSpinnerMasker{  
2078 - position: absolute;  
2079 - left:46%;  
2080 - top:34%;  
2081 - margin-left:130px;  
2082 - display: none;  
2083 -}  
2084 -.exitSpinnerMasker .exitSpinnerMaskerA{  
2085 - color:dodgerblue;  
2086 -}  
2087 -.minspinner{  
2088 - width:0%;  
2089 - height:10px;  
2090 - border-radius:5px;  
2091 - background:dodgerblue;  
2092 - opacity: .7;  
2093 -}  
2094 -.container1 > div, .container2 > div, .container3 > div {  
2095 - width: 10px;  
2096 - height: 10px;  
2097 - background-color:dodgerblue;  
2098 -  
2099 - border-radius: 100%;  
2100 - position: absolute;  
2101 - -webkit-animation: bouncedelay 1.2s infinite ease-in-out;  
2102 - animation: bouncedelay 1.2s infinite ease-in-out;  
2103 - -webkit-animation-fill-mode: both;  
2104 - animation-fill-mode: both;  
2105 -}  
2106 -  
2107 -.spinner .spinner-container {  
2108 - position: absolute;  
2109 - width: 100%;  
2110 - height: 100%;  
2111 -}  
2112 -  
2113 -.container2 {  
2114 - -webkit-transform: rotateZ(45deg);  
2115 - transform: rotateZ(45deg);  
2116 -}  
2117 -  
2118 -.container3 {  
2119 - -webkit-transform: rotateZ(90deg);  
2120 - transform: rotateZ(90deg);  
2121 -}  
2122 -  
2123 -.circle1 { top: 0; left: 0; }  
2124 -.circle2 { top: 0; right: 0; }  
2125 -.circle3 { right: 0; bottom: 0; }  
2126 -.circle4 { left: 0; bottom: 0; }  
2127 -  
2128 -.container2 .circle1 {  
2129 - -webkit-animation-delay: -1.1s;  
2130 - animation-delay: -1.1s;  
2131 -}  
2132 -  
2133 -.container3 .circle1 {  
2134 - -webkit-animation-delay: -1.0s;  
2135 - animation-delay: -1.0s;  
2136 -}  
2137 -  
2138 -.container1 .circle2 {  
2139 - -webkit-animation-delay: -0.9s;  
2140 - animation-delay: -0.9s;  
2141 -}  
2142 -  
2143 -.container2 .circle2 {  
2144 - -webkit-animation-delay: -0.8s;  
2145 - animation-delay: -0.8s;  
2146 -}  
2147 -  
2148 -.container3 .circle2 {  
2149 - -webkit-animation-delay: -0.7s;  
2150 - animation-delay: -0.7s;  
2151 -}  
2152 -  
2153 -.container1 .circle3 {  
2154 - -webkit-animation-delay: -0.6s;  
2155 - animation-delay: -0.6s;  
2156 -}  
2157 -  
2158 -.container2 .circle3 {  
2159 - -webkit-animation-delay: -0.5s;  
2160 - animation-delay: -0.5s;  
2161 -}  
2162 -  
2163 -.container3 .circle3 {  
2164 - -webkit-animation-delay: -0.4s;  
2165 - animation-delay: -0.4s;  
2166 -}  
2167 -  
2168 -.container1 .circle4 {  
2169 - -webkit-animation-delay: -0.3s;  
2170 - animation-delay: -0.3s;  
2171 -}  
2172 -  
2173 -.container2 .circle4 {  
2174 - -webkit-animation-delay: -0.2s;  
2175 - animation-delay: -0.2s;  
2176 -}  
2177 -  
2178 -.container3 .circle4 {  
2179 - -webkit-animation-delay: -0.1s;  
2180 - animation-delay: -0.1s;  
2181 -}  
2182 -  
2183 -@-webkit-keyframes bouncedelay {  
2184 - 0%, 80%, 100% { -webkit-transform: scale(0.0) }  
2185 - 40% { -webkit-transform: scale(1.0) }  
2186 -}  
2187 -  
2188 -@keyframes bouncedelay {  
2189 - 0%, 80%, 100% {  
2190 - transform: scale(0.0);  
2191 - -webkit-transform: scale(0.0);  
2192 - } 40% {  
2193 - transform: scale(1.0);  
2194 - -webkit-transform: scale(1.0);  
2195 - }  
2196 -}  
2197 -  
2198 -/*屏幕共享*/  
2199 -.screenSharingGroup{  
2200 - width:100%;  
2201 - height:100%;  
2202 - position: absolute;  
2203 - left:0;  
2204 - top:0;  
2205 - background: #353536;  
2206 - display: none;  
2207 -}  
2208 -.sharingMsgBox{  
2209 - width:248px;  
2210 - height:40px;  
2211 - line-height: 40px;  
2212 - position: absolute;  
2213 - left:50%;  
2214 - top:50%;  
2215 - margin-left:-110px;  
2216 - margin-top:25px;  
2217 - font-size: 14px;  
2218 -}  
2219 -.sharingMsgBox1{  
2220 - margin-left:-115px;  
2221 -}  
2222 -.shareBackdrop{  
2223 - position: absolute;  
2224 - left:15px;  
2225 - top:-202px;  
2226 - display: none;  
2227 -}  
2228 - .sharingMsg{  
2229 - float: left;  
2230 - width:188px;  
2231 - height:100%;  
2232 - background: #666;  
2233 - text-align: center;  
2234 - color:#fff;  
2235 - border-radius: 30px;  
2236 - display: none;  
2237 -}  
2238 - .sharingMsg1{  
2239 - cursor: pointer;  
2240 - text-decoration: underline;  
2241 - }  
2242 -.sharingMsg1:hover{  
2243 - color: #e5e5e5;  
2244 -}  
2245 -.sharingMsg2{  
2246 - cursor: pointer;  
2247 -}  
2248 -  
2249 -.downloadCancel{  
2250 - float: left;  
2251 - color:#fff;  
2252 - cursor: pointer;  
2253 - width:60px;  
2254 - text-align: center;  
2255 - display: none;  
2256 -}  
2257 -.downloadCancel:hover{  
2258 - color: #e5e5e5;  
2259 -}  
2260 -  
2261 -/*媒体共享*/  
2262 -.mediaShareGroup{  
2263 - width:100%;  
2264 - height:100%;  
2265 - position: absolute;  
2266 - left:0;  
2267 - top:0;  
2268 - background: #353536;  
2269 - display: none;  
2270 -}  
2271 -  
2272 -/*伴音*/  
2273 -.musicShareGroup{  
2274 - width:286px;  
2275 - height:88px;  
2276 - background: #4f4f52;  
2277 - z-index: 2;  
2278 - position: absolute;  
2279 - left:0;  
2280 - top:0;  
2281 - box-shadow: 0 2px 1px #4f4f52;  
2282 - display: none;  
2283 - font-size: 12px;  
2284 - color:#fff;  
2285 - cursor: default;  
2286 -}  
2287 -.musicShareNameBox{  
2288 - width: 80%;  
2289 - height:40px;  
2290 - margin-left:10%;  
2291 - text-align: center;  
2292 - position: relative;  
2293 -}  
2294 -.closeMusicClose{  
2295 - width:15px;  
2296 - height:15px;  
2297 - position: absolute;  
2298 - right:7px;  
2299 - top:7px;  
2300 - background: url(../images/music/delete-normal.png) no-repeat;  
2301 - cursor: pointer;  
2302 -}  
2303 -.closeMusicClose:hover{  
2304 - background: url(../images/music/delete-hover.png) no-repeat;  
2305 -}  
2306 -.musicIcon{  
2307 - background: url(../images/music/icon-music.png) no-repeat;  
2308 - width: 15px;  
2309 - height: 15px;  
2310 - display: inline-block;  
2311 - margin-top:12px;  
2312 - position: absolute;  
2313 - left:0;  
2314 - top:0;  
2315 -}  
2316 -.musicShareName{  
2317 - background: url(../images/music/icon-music.png) no-repeat 0 4px;  
2318 - padding:0 20px;  
2319 - line-height: 40px;  
2320 - background-size: 12px;  
2321 -}  
2322 -.musicSharePlayBox{  
2323 - width:100%;  
2324 - height:25px;  
2325 - float: left;  
2326 - padding:0 15px;  
2327 -}  
2328 -.musicSharePlayBox>div{  
2329 - float: left;  
2330 -}  
2331 -.musicShareProgressBtn{  
2332 - width:14px;  
2333 - height:14px;  
2334 - float: left;  
2335 - margin-right:15px;  
2336 -}  
2337 -.musicShareProgressBtn span{  
2338 - width:15px;  
2339 - height:15px;  
2340 - float: left;  
2341 - cursor: pointer;  
2342 -}  
2343 -.musicSharePlayProgressBox{  
2344 - width:145px;  
2345 - height:2px;  
2346 - margin-top:6px;  
2347 - float: left;  
2348 - position: relative;  
2349 -}  
2350 -.musicSharePlayProgressBox span{  
2351 - display: inline-block;  
2352 -}  
2353 -.musicShare_bg{  
2354 - width:145px;  
2355 - height:2px;  
2356 - background: #b2b2b2;  
2357 - position: absolute;  
2358 - left:0;  
2359 - top:0;  
2360 - cursor: pointer;  
2361 -}  
2362 -.musicShare_color{  
2363 - width:0%;  
2364 - height:2px;  
2365 - background: #ed5c1c;  
2366 - position: absolute;  
2367 - left:0;  
2368 - top:0;  
2369 - cursor: pointer;  
2370 -}  
2371 -.musicShare_btn{  
2372 - width:9px;  
2373 - height:9px;  
2374 - background: url(../images/music/Play-Control.png) no-repeat;  
2375 - position: absolute;  
2376 - left:0%;  
2377 - top:-3px;  
2378 - margin-left:-4px;  
2379 - cursor: pointer;  
2380 -}  
2381 -.musicTimeProgress{  
2382 - width:60px;  
2383 - height:100%;  
2384 - margin-left:15px;  
2385 -}  
2386 -  
2387 -/*播放暂停播放*/  
2388 -.musicShareProgressPlay{  
2389 - background: url(../images/music/play-normal.png) no-repeat;  
2390 -}  
2391 -.musicShareProgressPlay:hover{  
2392 - background: url(../images/music/play-hover-.png) no-repeat;  
2393 -}  
2394 -.musicShareProgressPause{  
2395 - background: url(../images/music/pause-normal.png) no-repeat;  
2396 - display: none;  
2397 -}  
2398 -.musicShareProgressPause:hover{  
2399 - background: url(../images/music/pause-hover.png) no-repeat;  
2400 -}  
2401 -/*音量控制*/  
2402 -.musicVolumePlay{  
2403 - background: url(../images/music/Speakers-normal.png) no-repeat;  
2404 -}  
2405 -.musicVolumePlay:hover{  
2406 - background: url(../images/music/Speakers-hover.png) no-repeat;  
2407 -}  
2408 -.musicVolumePause{  
2409 - background: url(../images/music/No-sound-normal-.png) no-repeat;  
2410 - display: none;  
2411 -}  
2412 -.musicVolumePause:hover{  
2413 - background: url(../images/music/No-sound-hover.png) no-repeat;  
2414 -}  
2415 -/*遮罩层*/  
2416 -.masker {  
2417 - display: none;  
2418 - position: absolute;  
2419 - z-index: 4;  
2420 - left: 0;  
2421 - top: 0;  
2422 - width: 100%;  
2423 - height: 100%;  
2424 - background: rgba(0, 0, 0, .7);  
2425 -}  
2426 -  
2427 -/*回放控制条*/  
2428 -.recordPlayControl{  
2429 - z-index: 1000;  
2430 -}  
2431 -.controlBarOut{  
2432 - position: fixed;  
2433 - bottom: 0px;  
2434 - left: 0px;  
2435 - height: 60px;  
2436 - width: 100%;  
2437 - min-width: 760px;  
2438 -}  
2439 -/*录制回放控制条的背景*/  
2440 -.controlBarOpacity{  
2441 - background-color: #111312;  
2442 - height: 100%;  
2443 - width: 100%;  
2444 - opacity: 0.8;  
2445 -}  
2446 -.controlBarInner{  
2447 - position: absolute;  
2448 - top: 0;  
2449 - width: 100%;  
2450 - height: 100%  
2451 -}  
2452 -.replayProgressBar{  
2453 - position: absolute;  
2454 - left: 2%;  
2455 - width: 96%;  
2456 - outline-style: none;  
2457 -}  
2458 -.btn_recordPlay{  
2459 - position: absolute;  
2460 - top: 29px;  
2461 - left: 18px;  
2462 - height: 18px;  
2463 - width: 18px;  
2464 - background: url(../images/playBack/play.gif) no-repeat;  
2465 - border: 0;  
2466 -}  
2467 -.btn_recordPause{  
2468 - position: absolute;  
2469 - top: 29px;  
2470 - left: 18px;  
2471 - height: 18px;  
2472 - width: 18px;  
2473 - background: url("../images/playBack/pause.gif") no-repeat;  
2474 - border: 0;  
2475 -}  
2476 -.btn_recordClose{  
2477 - position: absolute;  
2478 - top: 29px;  
2479 - right: 25px;  
2480 - height: 18px;  
2481 - width: 18px;  
2482 - background: url("../images/playBack/rePlay.gif") no-repeat;  
2483 - border: 0;  
2484 -}  
2485 -.classTimestampText{  
2486 - float: left;  
2487 - color: #ccc;  
2488 - margin-left: 10px;  
2489 - font-size: 12px;  
2490 -}  
2491 -  
2492 -.classTimestamp{  
2493 - position: absolute;  
2494 - left: 42px;  
2495 - top: 30px;  
2496 - width: 120px;  
2497 - text-align: center;  
2498 - background: transparent;  
2499 - border: 0;  
2500 - color: #6b6b6b;  
2501 -}  
2502 -input[type="range"] {  
2503 - margin-top: 2px;  
2504 - background-color: #272728;  
2505 - -webkit-appearance: none;  
2506 - height:12px;  
2507 -}  
2508 -input[type="range"]::-webkit-slider-thumb {  
2509 - -webkit-appearance: none;  
2510 - cursor: default;  
2511 - top: -5px;  
2512 - height: 30px;  
2513 - width: 20px;  
2514 - background: none repeat scroll 0 0 #777;  
2515 - border-radius: 15px;  
2516 - -webkit-box-shadow: 0 -1px 1px black inset;  
2517 -}  
2518 -  
2519 -  
2520 -  
2521 -  
2522 -  
2523 -  
2524 -  
2525 -/*登录*/  
2526 -.loginBg{  
2527 - display: block;  
2528 - position: absolute;  
2529 - left:0;  
2530 - top:0;  
2531 - right:0;  
2532 - bottom: 0;  
2533 - z-index: 100;  
2534 - /* background:#474749;  
2535 - background: url("../images/newlogin/bg.jpg") no-repeat center center;*/  
2536 - width:auto;  
2537 - height: 100%;  
2538 - background-size: cover;  
2539 -}  
2540 -.loginContentBox{  
2541 - width: 400px;  
2542 - height: 400px;  
2543 - /* background: #484646;*/  
2544 - position: absolute;  
2545 - top: 20%;  
2546 - left: 50%;  
2547 - border-radius: 5px;  
2548 - margin-left:-200px;  
2549 -}  
2550 -.loginBg .bgLogin{  
2551 - width:100%;  
2552 - height:100%;  
2553 - background: rgba(0, 0, 0, .7);  
2554 -}  
2555 -.loginImg{  
2556 - width:100%;  
2557 - height: 100%;  
2558 - background: url("../images/newlogin/student.png") no-repeat center bottom;  
2559 - position: absolute;  
2560 - bottom:0;  
2561 - left:0;  
2562 -}  
2563 -.login_star{  
2564 - width:100%;  
2565 - height:100%;  
2566 -}  
2567 -@keyframes star{  
2568 - from{transform: scale(0);}  
2569 - to{transform: scale(2);}  
2570 -}  
2571 -@keyframes stars{  
2572 - 0% {  
2573 - opacity: 0; }  
2574 - 50% {  
2575 - opacity: .8; }  
2576 - 100% {  
2577 - opacity: 0; }  
2578 -}  
2579 -.star{  
2580 - width: 10px;  
2581 - height: 10px;  
2582 - background: url(../images/newlogin/xx.png) no-repeat;  
2583 - background-size: 100% 100%;  
2584 - position: absolute;  
2585 -}  
2586 -.login_star1{  
2587 - left:80%;  
2588 - top:7%;  
2589 - animation: star 2s linear infinite;  
2590 - animation: stars 2s linear infinite;  
2591 - -webkit-animation: star 2s linear infinite;  
2592 - -webkit-animation: stars 2s linear infinite;  
2593 -}  
2594 -.login_star2{  
2595 - left:10%;  
2596 - top:18%;  
2597 - animation: star 1.8s linear infinite;  
2598 - animation: stars 1.8s linear infinite;  
2599 - -webkit-animation: star 1.8s linear infinite;  
2600 - -webkit-animation: stars 1.8s linear infinite;  
2601 -}  
2602 -.login_star3{  
2603 - left:60%;  
2604 - top:20%;  
2605 - animation: star 2.3s linear infinite;  
2606 - animation: stars 2.3s linear infinite;  
2607 - -webkit-animation: star 2.3s linear infinite;  
2608 - -webkit-animation: stars 2.3s linear infinite;  
2609 -}  
2610 -.login_star4{  
2611 - left:31%;  
2612 - top:41%;  
2613 - animation: star 1.4s linear infinite;  
2614 - animation: stars 1.4s linear infinite;  
2615 - -webkit-animation: star 1.4s linear infinite;  
2616 - -webkit-animation: stars 1.4s linear infinite;  
2617 -}  
2618 -.login_star5{  
2619 - left:78%;  
2620 - top:50%;  
2621 - animation: star 1.7s linear infinite;  
2622 - animation: stars 1.7s linear infinite;  
2623 - -webkit-animation: star 1.7s linear infinite;  
2624 - -webkit-animation: stars 1.7s linear infinite;  
2625 -}  
2626 -.login_star6{  
2627 - left:12%;  
2628 - top:33%;  
2629 - animation: star 2.5s linear infinite;  
2630 - animation: stars 2.5s linear infinite;  
2631 - -webkit-animation: star 2.5s linear infinite;  
2632 - -webkit-animation: stars 2.5s linear infinite;  
2633 -}  
2634 -.login_star7{  
2635 - left:24%;  
2636 - top:30%;  
2637 - animation: star 2.3s linear infinite;  
2638 - animation: stars 2.3s linear infinite;  
2639 - -webkit-animation: star 2.3s linear infinite;  
2640 - -webkit-animation: stars 2.3s linear infinite;  
2641 -}  
2642 -.login_star8{  
2643 - left:14%;  
2644 - top:35%;  
2645 - animation: star 2.2s linear infinite;  
2646 - animation: stars 2.2s linear infinite;  
2647 - -webkit-animation: star 2.2s linear infinite;  
2648 - -webkit-animation: stars 2.2s linear infinite;  
2649 -}  
2650 -.login_star9{  
2651 - left:64%;  
2652 - top:55%;  
2653 - animation: star 2.4s linear infinite;  
2654 - animation: stars 2.4s linear infinite;  
2655 - -webkit-animation: star 2.4s linear infinite;  
2656 - -webkit-animation: stars 2.4s linear infinite;  
2657 -}  
2658 -.login_star10{  
2659 - left:54%;  
2660 - top:20%;  
2661 - animation: star 2.7s linear infinite;  
2662 - animation: stars 2.7s linear infinite;  
2663 - -webkit-animation: star 2.7s linear infinite;  
2664 - -webkit-animation: stars 2.7s linear infinite;  
2665 -}  
2666 -.login_star11{  
2667 - left:74%;  
2668 - top:23%;  
2669 - animation: star 2.8s linear infinite;  
2670 - animation: stars 2.8s linear infinite;  
2671 - -webkit-animation: star 2.8s linear infinite;  
2672 - -webkit-animation: stars 2.8s linear infinite;  
2673 -}  
2674 -.login_star12{  
2675 - left:80%;  
2676 - top:30%;  
2677 - animation: star 3s linear infinite;  
2678 - animation: stars 3s linear infinite;  
2679 - -webkit-animation: star 3s linear infinite;  
2680 - -webkit-animation: stars 3s linear infinite;  
2681 -}  
2682 -.loginContent{  
2683 - position: absolute;  
2684 - top: 15%;  
2685 - left: 50%;  
2686 - width: 270px;  
2687 - height: 260px;  
2688 - margin-left:-135px;  
2689 -}  
2690 -.loginContent input[type=text]{  
2691 - color: white;  
2692 -}  
2693 -.loginContent .loginContentImg{  
2694 - height: 35px;  
2695 - width: 270px;  
2696 - background: url("../images/newlogin/logo.png") no-repeat center center;  
2697 -}  
2698 -.loginContent .userNameLi{  
2699 - height: 50px;  
2700 - line-height: 50px;  
2701 - width: 270px;  
2702 - border:1px solid #fff;  
2703 - border-radius:3px 3px 0 0;  
2704 -/* background:#333;*/  
2705 - opacity:0.8;  
2706 - margin-top:30px;  
2707 - display: none;  
2708 - /*background: url("../images/login/userName.png") no-repeat left ;*/  
2709 -}  
2710 -.loginContent .userNameLi input,.loginContent .passWordLi input{  
2711 - float: left;  
2712 - margin-left: 12px;  
2713 - width: 200px;  
2714 - height: 50px;  
2715 - border: none;  
2716 - color:#fff ;  
2717 - background-color:transparent;  
2718 -  
2719 -  
2720 -}  
2721 -/* WebKit browsers*/  
2722 -.loginContent .userNameLi input::-webkit-input-placeholder{  
2723 - font-size: 12px;  
2724 - color: #fff;  
2725 -}  
2726 -/* Mozilla Firefox 4 to 18*/  
2727 -.loginContent .userNameLi input:-moz-placeholder{  
2728 - font-size: 12px;  
2729 - color: #fff;  
2730 -}  
2731 -/* Mozilla Firefox 19+*/  
2732 -.loginContent .userNameLi input::-moz-placeholder{  
2733 - font-size: 12px;  
2734 - color: #fff;  
2735 -}  
2736 -/* Internet Explorer 10+*/  
2737 -.loginContent .userNameLi input:-ms-input-placeholder{  
2738 - font-size: 12px;  
2739 - color: #fff;  
2740 -}  
2741 -.loginContent .userNameLi input:focus{  
2742 - outline-style: none;  
2743 -}  
2744 -/* WebKit browsers*/  
2745 -.loginContent .passWordLi input::-webkit-input-placeholder{  
2746 - font-size: 12px;  
2747 - color: #ccc;  
2748 -}  
2749 -/* Mozilla Firefox 4 to 18*/  
2750 -.loginContent .passWordLi input:-moz-placeholder{  
2751 - font-size: 12px;  
2752 - color: #ccc;  
2753 -}  
2754 -/* Mozilla Firefox 19+*/  
2755 -.loginContent .passWordLi input::-moz-placeholder{  
2756 - font-size: 12px;  
2757 - color: #ccc;  
2758 -}  
2759 -/* Internet Explorer 10+*/  
2760 -.loginContent .passWordLi input:-ms-input-placeholder{  
2761 - font-size: 12px;  
2762 - color: #ccc;  
2763 -}  
2764 -.loginContent .passWordLi input:focus{  
2765 - outline-style: none;  
2766 -}  
2767 -.loginContent .loginUser{  
2768 - line-height: 20px;  
2769 - width: 270px;  
2770 - /*border-bottom: 1px solid #ccc;*/  
2771 -}  
2772 -.loginContent .loginUser p{  
2773 - /*display: none;*/  
2774 - font-size: 12px;  
2775 - color: #d95136;  
2776 - /*margin-left: 45px;*/  
2777 -  
2778 -}  
2779 -.loginContent .passWordLi{  
2780 - height: 50px;  
2781 - line-height: 50px;  
2782 - width: 270px;  
2783 - border: 1px solid #fff;  
2784 - border-top:none;  
2785 - border-radius:0 0 3px 3px;  
2786 -/* background:#333;*/  
2787 - opacity:0.8;  
2788 - display: none;  
2789 -}  
2790 -.loginContent .loginPassWord{  
2791 - height: 20px;  
2792 - line-height: 20px;  
2793 - width: 270px;  
2794 - /*border-bottom: 1px solid #ccc;*/  
2795 -}  
2796 -.loginContent .loginPassWord p{  
2797 - /*display: none;*/  
2798 - font-size: 12px;  
2799 - color: #d95136;  
2800 - /*margin-left: 45px;*/  
2801 - display: none;  
2802 -}  
2803 -.loginContent .btnLoginLi{  
2804 - height: 40px;  
2805 - width: 270px;  
2806 - display: none;  
2807 -}  
2808 -.loginContent .btnLoginLi button {  
2809 - height: 40px;  
2810 - width: 270px;  
2811 - font-size: 14px;  
2812 - background: #3598db;  
2813 - color: #fff;  
2814 - outline-style: none;  
2815 - border: 0;  
2816 - text-align: center;  
2817 - border-radius:3px;  
2818 -}  
2819 -.loginContent .btnLoginLi button:hover {  
2820 - background:#58aced;  
2821 -}  
2822 -  
2823 -.initParams .errorTip{  
2824 - text-align: center;  
2825 - /* margin: 237px auto;*/  
2826 - height: 20px;  
2827 - line-height: 20px;  
2828 - width: 270px;  
2829 - color: red;  
2830 - float: left;  
2831 - padding-top:20px;  
2832 - display:none;  
2833 -}  
2834 -.loginContent .errorTip{  
2835 - margin: 6px auto;  
2836 - height: 20px;  
2837 - width: 270px;  
2838 - color: red;  
2839 - text-align: center;  
2840 -}  
2841 -/*初始化参数*/  
2842 -.initParamsOut{  
2843 - display: block;  
2844 - position: absolute;  
2845 - left:0;  
2846 - top:0;  
2847 - right:0;  
2848 - bottom: 0;  
2849 - z-index: 100;  
2850 - height: 100%;  
2851 - /* background:#474749;*/  
2852 -/* background: url("../images/newlogin/bg.jpg") no-repeat center center;*/  
2853 - width:auto;  
2854 - background-size: cover;  
2855 -}  
2856 -.initParamsBox{  
2857 - width: 400px;  
2858 - height: 400px;  
2859 -/* background: #484646;*/  
2860 - position: absolute;  
2861 - top: 20%;  
2862 - left: 50%;  
2863 - border-radius: 5px;  
2864 - margin-left:-200px;  
2865 -}  
2866 -.initParamsOut .bgInit{  
2867 - width:100%;  
2868 - height:100%;  
2869 - background: rgba(0, 0, 0, .7);  
2870 -}  
2871 -::-ms-clear, ::-ms-reveal{display: none;}  
2872 -.initParams{  
2873 - position: absolute;  
2874 - top: 15%;  
2875 - left: 50%;  
2876 - width: 270px;  
2877 - height: 260px;  
2878 - z-index: 10;  
2879 - margin-left:-133px;  
2880 -}  
2881 -.initParams .initParamsImg{  
2882 - height: 35px;  
2883 - width: 270px;  
2884 - background: url("../images/newlogin/logo.png") no-repeat center center;  
2885 -}  
2886 -.initParams .initParamsClassId{  
2887 - height: 50px;  
2888 - line-height: 50px;  
2889 - width: 270px;  
2890 - border:1px solid #fff;  
2891 - border-radius:3px 3px 0 0;  
2892 - /*background:#333;*/  
2893 - opacity:0.8;  
2894 - margin-top:30px;  
2895 - display: none;  
2896 -}  
2897 -.initParams .initParamsClassId input,.initParams .initParamsUserId input {  
2898 - float: left;  
2899 - height: 51px;  
2900 - border: none;  
2901 - background-color:transparent;  
2902 -}  
2903 -.initParams .initParamsClassId input,.initParams .initParamsUserId input{  
2904 - float: left;  
2905 - padding-left:12px;  
2906 - color:#fff;  
2907 -}  
2908 -.initParams .initParamsClassId input:focus,.initParams .initParamsUserId input:focus{  
2909 - outline-style: none;  
2910 -}  
2911 -/* WebKit browsers*/  
2912 -.loginContent .initParamsClassId input::-webkit-input-placeholder,.loginContent .initParamsUserId input::-webkit-input-placeholder{  
2913 - font-size: 12px;  
2914 - color: #fff;  
2915 -  
2916 -}  
2917 -/* Mozilla Firefox 4 to 18*/  
2918 -.loginContent .initParamsClassId input:-moz-placeholder,.loginContent .initParamsUserId input:-moz-placeholder{  
2919 - font-size: 12px;  
2920 - color: #fff;  
2921 -}  
2922 -/* Mozilla Firefox 19+*/  
2923 -.loginContent .initParamsClassId input::-moz-placeholder,.loginContent .initParamsUserId input::-moz-placeholder{  
2924 - font-size: 12px;  
2925 - color: #fff;  
2926 -}  
2927 -/* Internet Explorer 10+*/  
2928 -.loginContent .initParamsClassId input:-ms-input-placeholder,.loginContent .initParamsUserId input:-ms-input-placeholder{  
2929 - font-size: 12px;  
2930 - color: #fff;  
2931 -}  
2932 -/* WebKit browsers*/  
2933 -.loginContent .initParamsClassId input::-webkit-input-placeholder,.loginContent .initParamsUserId input::-webkit-input-placeholder{  
2934 - font-size: 12px;  
2935 - color: #fff;  
2936 -}  
2937 -.initParams .initParamsUserId{  
2938 - height: 50px;  
2939 - line-height: 50px;  
2940 - width: 270px;  
2941 - border: 1px solid #fff;  
2942 - border-top:none;  
2943 - border-radius:0 0 3px 3px;  
2944 - /*background:#333;*/  
2945 - opacity:0.8;  
2946 - display: none;  
2947 -}  
2948 -.initParams .initParamsNull{  
2949 - height:40px;  
2950 -}  
2951 -.initParams .initParamsRoleBtn{  
2952 - height: 40px;  
2953 - width: 270px;  
2954 - display: none;  
2955 -}  
2956 -.initParams .initParamsRoleBtn button{  
2957 - height: 40px;  
2958 - width: 130px;  
2959 - font-size: 14px;  
2960 - background: #3598db;  
2961 - color: #fff;  
2962 - outline-style: none;  
2963 - border: 0;  
2964 - border-radius:3px;  
2965 - margin-left:5px;  
2966 -}  
2967 -.initParams .initParamsRoleBtn button:hover{  
2968 - background:#58aced;  
2969 -}  
2970 -.ensureTeaBtn{  
2971 - display: none;  
2972 - width: 80px;  
2973 -}  
2974 -.ensureStuBtn{  
2975 - display: none;  
2976 - width: 80px;  
2977 -}  
2978 -  
2979 -  
2980 -/*错误弹出框*/  
2981 -.errorBox{  
2982 - display: none;  
2983 - position: absolute;  
2984 - top: 35%;  
2985 - left: 33%;  
2986 - width: 370px;  
2987 - height: 174px;  
2988 - background: white;  
2989 - z-index: 2000;  
2990 -}  
2991 -.errorBox .errorHeadline{  
2992 - height: 40px;  
2993 - line-height: 40px;  
2994 - background: #3b3b3b;  
2995 -}  
2996 -.errorBox .errorHeadline .errorHeadlineTitle{  
2997 - position: absolute;  
2998 - left: 14px;  
2999 - font-size: 12px;  
3000 - color: #fff;  
3001 -}  
3002 -.errorBox .errorHeadline a{  
3003 - position: absolute;  
3004 - top: 0;  
3005 - right: 14px;  
3006 - color: #ffffff;  
3007 -}  
3008 -.errorBox .errorHeadline a:hover{  
3009 - color: #CCCCCC;  
3010 -}  
3011 -.errorBox .errorHeadline a:active{  
3012 - color: #3b3b3b;  
3013 -}  
3014 -.errorContent{  
3015 - height: 134px;  
3016 - width: 370px;  
3017 - background-color: #4f4e53;  
3018 - overflow-x: hidden;  
3019 -}  
3020 -.errorContent .errorText{  
3021 - font-size: 14px;  
3022 - color: #fff;  
3023 - text-align: center;  
3024 - line-height: 14px;  
3025 - position: absolute;  
3026 - left: 50%;  
3027 - top: 45%;  
3028 - width: 250px;  
3029 - margin-left: -125px;  
3030 - line-height: 16px;  
3031 -}  
3032 -.errorContent .errorEnsure{  
3033 - width: 66px;  
3034 - height: 32px;  
3035 - background: #999;  
3036 - border: 0;  
3037 - margin-left: 83px;  
3038 - margin-top: 31px;  
3039 - cursor: pointer;  
3040 -}  
3041 -.errorContent .errorCancel{  
3042 - width: 66px;  
3043 - height: 32px;  
3044 - background: #3498db;  
3045 - border: 0;  
3046 - margin-top: 31px;  
3047 - margin-left: 93px;  
3048 - cursor: pointer;  
3049 -}  
3050 -  
3051 -/*设置*/  
3052 -  
3053 -.setContent li:nth-of-type(1),.setContent li:nth-of-type(3){  
3054 - height:30px;  
3055 - line-height: 30px;  
3056 -}  
3057 -.setContent li:nth-of-type(3){  
3058 - margin-top: 36px;  
3059 -}  
3060 -.setContent li:nth-of-type(1) span,.setContent li:nth-of-type(3) span{  
3061 - float: left;  
3062 - font-size: 14px;  
3063 - color: #666;  
3064 -}  
3065 -  
3066 -/*设置的弹出框 左右滑动*/  
3067 -.setContent li:nth-of-type(4){  
3068 - height: 48px;  
3069 - line-height: 48px;  
3070 - position: relative;  
3071 - margin-top: 15px;  
3072 -}  
3073 -.setContent li:nth-of-type(4) p:nth-of-type(1){  
3074 - position: absolute;  
3075 - display: inline-block;  
3076 - font-size: 14px;  
3077 - color: #666;  
3078 - left:0;  
3079 - top:0;  
3080 -}  
3081 -.setContent li:nth-of-type(4) span:nth-of-type(1){  
3082 -  
3083 - position: absolute;  
3084 - display: inline-block;  
3085 - margin-left: 70px;  
3086 - left:0;  
3087 - top:0;  
3088 -}  
3089 -.setContent li:nth-of-type(4) span:nth-of-type(2){  
3090 - position: absolute;  
3091 - display: inline-block;  
3092 - left:80px;  
3093 - top:0;  
3094 -}  
3095 -/*.setContent li:nth-of-type(4) .scrollBar{*/  
3096 -  
3097 - /*position:absolute;*/  
3098 - /*left: 92px;*/  
3099 - /*display: inline-block;*/  
3100 - /*width: 110px;*/  
3101 - /*height: 2px;*/  
3102 - /*background-color: #ccc;*/  
3103 - /*margin: 24px 10px;*/  
3104 - /*-webkit-border-radius: 2px;*/  
3105 - /*-moz-border-radius: 2px;*/  
3106 - /*border-radius: 2px;*/  
3107 - /*cursor: pointer;*/  
3108 -/*}*/  
3109 -/*.setContent li:nth-of-type(4) .scroll_Thumb {*/  
3110 -  
3111 - /*display: inline-block;*/  
3112 - /*height: 10px;*/  
3113 - /*width: 10px;*/  
3114 - /*background-color: #efefef;*/  
3115 - /*-webkit-border-radius: 2em;*/  
3116 - /*-moz-border-radius: 2em;*/  
3117 - /*border-radius: 2em;*/  
3118 - /*border: 1px solid #ccc;*/  
3119 - /*-webkit-box-shadow: 0px 0px 5px #ccc;*/  
3120 - /*-moz-box-shadow: 0px 0px 5px #ccc;*/  
3121 - /*box-shadow: 0px 0px 5px #ccc;*/  
3122 - /*position: absolute;*/  
3123 - /*cursor: pointer;*/  
3124 - /*bottom: -4px;*/  
3125 - /*left:0;*/  
3126 -/*}*/  
3127 -/*.setContent li:nth-of-type(4) .scroll_Thumb:hover {*/  
3128 - /*background-color: #3498db;*/  
3129 - /*border: 1px solid #fff;*/  
3130 -/*}*/  
3131 -  
3132 -.setContent li:nth-of-type(4) .soundRange{  
3133 - position: absolute;  
3134 - left: 90px;  
3135 - top: 20px;  
3136 - width: 270px;  
3137 - cursor: pointer;  
3138 -}  
3139 -  
3140 -.setContent li:nth-of-type(4) input[type="range"]{  
3141 - margin-top: 2px;  
3142 - /*background-color: #ccc;*/  
3143 - -webkit-appearance: none;  
3144 - height: 3px;  
3145 - background: -webkit-linear-gradient(#3498db, #3498db) no-repeat, #ddd;/*设置左边颜色为#61bd12,右边颜色为#ddd*/  
3146 - cursor: pointer;  
3147 - border: 0;  
3148 -}  
3149 -  
3150 -  
3151 -.setContent li:nth-of-type(4) input[type=range]::-webkit-slider-thumb {  
3152 - -webkit-appearance: none;/*清除系统默认样式*/  
3153 - height: 15px;/*拖动块高度*/  
3154 - width: 15px;/*拖动块宽度*/  
3155 - background: #fff;/*拖动块背景*/  
3156 - border-radius: 50%; /*外观设置为圆形*/  
3157 - /*border: solid 1px #ddd; !*设置边框*!*/  
3158 - cursor: pointer;  
3159 -}  
3160 -  
3161 -.setContent li:nth-of-type(4) span:nth-of-type(3){  
3162 - position:absolute;  
3163 - left: 220px;  
3164 - display: inline-block;  
3165 -  
3166 -}  
3167 -.setContent li:nth-of-type(4) span:nth-of-type(4){  
3168 - position:absolute;  
3169 - left: 245px;  
3170 - display: inline-block;  
3171 -  
3172 -}  
3173 -  
3174 -  
3175 -/*.setContent li:nth-of-type(5){*/  
3176 - /*height: 48px;*/  
3177 - /*line-height: 48px;*/  
3178 - /*position: relative;*/  
3179 - /*margin-top: 10px;*/  
3180 -/*}*/  
3181 -/*.setContent li:nth-of-type(5) p:nth-of-type(1){*/  
3182 - /*position: absolute;*/  
3183 - /*border: none;*/  
3184 - /*left: 0;*/  
3185 - /*top:0;*/  
3186 - /*width: 16px;*/  
3187 - /*height: 16px;*/  
3188 - /*margin-left: 70px;*/  
3189 - /*background: url("../images/mic.png") no-repeat center center;*/  
3190 -/*}*/  
3191 -  
3192 -/*.set-voice-progress{*/  
3193 - /*margin-left: 103px;*/  
3194 - /*width: 150px;*/  
3195 - /*height: 22px;*/  
3196 - /*!*background: #3c3c3c;*!*/  
3197 - /*position: relative;*/  
3198 -/*}*/  
3199 -/*.set-voice-progress .set-voice-progress-span-1{*/  
3200 - /*position: absolute;*/  
3201 - /*width: 4px;*/  
3202 - /*height: 17px;*/  
3203 - /*left: 0;*/  
3204 - /*top:0;*/  
3205 -  
3206 - /*background: #cbcbcb;*/  
3207 -  
3208 - /*-moz-animation: throbber-loader 5s 0s infinite linear;*/  
3209 - /*-webkit-animation:throbber-loader 5s 0s infinite linear;*/  
3210 - /*animation:throbber-loader 5s 0s infinite linear;*/  
3211 -/*}*/  
3212 -/*.set-voice-progress .set-voice-progress-span-2{*/  
3213 - /*position: absolute;*/  
3214 - /*width: 4px;*/  
3215 - /*height: 17px;*/  
3216 - /*left: 8px;*/  
3217 - /*top:0;*/  
3218 - /*background: #cbcbcb;*/  
3219 - /*-moz-animation: throbber-loader 6s 0s infinite linear;*/  
3220 - /*-webkit-animation:throbber-loader 6s 0s infinite linear;*/  
3221 - /*animation:throbber-loader 6s 0s infinite linear;*/  
3222 -/*}*/  
3223 -/*.set-voice-progress .set-voice-progress-span-3{*/  
3224 - /*position: absolute;*/  
3225 - /*width: 4px;*/  
3226 - /*height: 17px;*/  
3227 - /*left: 16px;*/  
3228 - /*top:0;*/  
3229 - /*background: #cbcbcb;*/  
3230 - /*-moz-animation: throbber-loader 7s 0s infinite linear;*/  
3231 - /*-webkit-animation:throbber-loader 7s 0s infinite linear;*/  
3232 - /*animation:throbber-loader 7s 0s infinite linear;*/  
3233 -/*}*/  
3234 -/*.set-voice-progress .set-voice-progress-span-4{*/  
3235 - /*position: absolute;*/  
3236 - /*width: 4px;*/  
3237 - /*height: 17px;*/  
3238 - /*left: 24px;*/  
3239 - /*top:0;*/  
3240 - /*background: #cbcbcb;*/  
3241 - /*-moz-animation: throbber-loader 8s 0s infinite linear;*/  
3242 - /*-webkit-animation:throbber-loader 8s 0s infinite linear;*/  
3243 - /*animation:throbber-loader 8s 0s infinite linear;*/  
3244 -/*}*/  
3245 -/*.set-voice-progress .set-voice-progress-span-5{*/  
3246 - /*position: absolute;*/  
3247 - /*width: 4px;*/  
3248 - /*height: 17px;*/  
3249 - /*left: 32px;*/  
3250 - /*top:0;*/  
3251 - /*background: #cbcbcb;*/  
3252 - /*-moz-animation: throbber-loader 9s 0s infinite linear;*/  
3253 - /*-webkit-animation:throbber-loader 9s 0s infinite linear;*/  
3254 - /*animation:throbber-loader 9s 0s infinite linear;*/  
3255 -/*}*/  
3256 -/*.set-voice-progress .set-voice-progress-span-6{*/  
3257 - /*position: absolute;*/  
3258 - /*width: 4px;*/  
3259 - /*height: 17px;*/  
3260 - /*left: 40px;*/  
3261 - /*top:0;*/  
3262 - /*background: #cbcbcb;*/  
3263 - /*-moz-animation: throbber-loader 10s 0s infinite linear;*/  
3264 - /*-webkit-animation:throbber-loader 10s 0s infinite linear;*/  
3265 - /*animation:throbber-loader 10s 0s infinite linear;*/  
3266 -/*}*/  
3267 -/*.set-voice-progress .set-voice-progress-span-7{*/  
3268 - /*position: absolute;*/  
3269 - /*width: 4px;*/  
3270 - /*height: 17px;*/  
3271 - /*left: 48px;*/  
3272 - /*top:0;*/  
3273 - /*background: #cbcbcb;*/  
3274 - /*-moz-animation: throbber-loader 11s 0s infinite linear;*/  
3275 - /*-webkit-animation:throbber-loader 11s 0s infinite linear;*/  
3276 - /*animation:throbber-loader 11s 0s infinite linear;*/  
3277 -/*}*/  
3278 -/*.set-voice-progress .set-voice-progress-span-8{*/  
3279 - /*position: absolute;*/  
3280 - /*width: 4px;*/  
3281 - /*height: 17px;*/  
3282 - /*left: 56px;*/  
3283 - /*top:0;*/  
3284 - /*background: #cbcbcb;*/  
3285 - /*-moz-animation: throbber-loader 12s 0s infinite linear;*/  
3286 - /*-webkit-animation:throbber-loader 12s 0s infinite linear;*/  
3287 - /*animation:throbber-loader 12s 0s infinite linear;*/  
3288 -/*}*/  
3289 -/*.set-voice-progress .set-voice-progress-span-9{*/  
3290 - /*position: absolute;*/  
3291 - /*width: 4px;*/  
3292 - /*height: 17px;*/  
3293 - /*left: 64px;*/  
3294 - /*top:0;*/  
3295 - /*background: #cbcbcb;*/  
3296 - /*-moz-animation: throbber-loader 13s 0s infinite linear;*/  
3297 - /*-webkit-animation:throbber-loader 13s 0s infinite linear;*/  
3298 - /*animation:throbber-loader 13s 0s infinite linear;*/  
3299 -/*}*/  
3300 -/*.set-voice-progress .set-voice-progress-span-10{*/  
3301 - /*position: absolute;*/  
3302 - /*width: 4px;*/  
3303 - /*height: 17px;*/  
3304 - /*left: 72px;*/  
3305 - /*top:0;*/  
3306 - /*background: #cbcbcb;*/  
3307 - /*-moz-animation: throbber-loader 14s 0s infinite linear;*/  
3308 - /*-webkit-animation:throbber-loader 14s 0s infinite linear;*/  
3309 - /*animation:throbber-loader 14s 0s infinite linear;*/  
3310 -/*}*/  
3311 -/*.set-voice-progress .set-voice-progress-span-11{*/  
3312 - /*position: absolute;*/  
3313 - /*width: 4px;*/  
3314 - /*height: 17px;*/  
3315 - /*left: 80px;*/  
3316 - /*top:0;*/  
3317 - /*background: #cbcbcb;*/  
3318 - /*-moz-animation: throbber-loader 15s 0s infinite linear;*/  
3319 - /*-webkit-animation:throbber-loader 15s 0s infinite linear;*/  
3320 - /*animation:throbber-loader 15s 0s infinite linear;*/  
3321 -/*}*/  
3322 -/*.set-voice-progress .set-voice-progress-span-12{*/  
3323 - /*position: absolute;*/  
3324 - /*width: 4px;*/  
3325 - /*height: 17px;*/  
3326 - /*left: 88px;*/  
3327 - /*top:0;*/  
3328 - /*background: #cbcbcb;*/  
3329 - /*-moz-animation: throbber-loader 16s 0s infinite linear;*/  
3330 - /*-webkit-animation:throbber-loader 16s 0s infinite linear;*/  
3331 - /*animation:throbber-loader 16s 0s infinite linear;*/  
3332 -/*}*/  
3333 -  
3334 -.setContent li:nth-of-type(5){  
3335 - height: 48px;  
3336 - line-height: 48px;  
3337 - position: relative;  
3338 - margin-top: 40px;  
3339 -}  
3340 -.setContent li:nth-of-type(5) .setSave{  
3341 - width: 66px;  
3342 - height: 32px;  
3343 - background: #999;  
3344 - border: 0;  
3345 - margin-left: 118px;  
3346 - cursor: pointer;  
3347 - color: #fff;  
3348 - border-radius: 3px;  
3349 -}  
3350 -.setContent li:nth-of-type(5) .setCancel{  
3351 - width: 66px;  
3352 - height: 32px;  
3353 - background: #3498db;  
3354 - border: 0;  
3355 - margin-left: 50px;  
3356 - /*margin-left: 34px;*/  
3357 - cursor: pointer;  
3358 - color: #fff;  
3359 - border-radius: 3px;  
3360 -}  
3361 -  
3362 -  
3363 -/*设置Select样式*/  
3364 -.SelectList  
3365 -{  
3366 - float:left;  
3367 - display:block;  
3368 - width:325px;  
3369 - height: 30px;  
3370 - margin-left: 28px;  
3371 - margin-right: 0;  
3372 - padding-right: 14px;  
3373 - background: transparent;  
3374 -}  
3375 -.SelectList option{  
3376 - width: 218px;  
3377 - height: 10px;  
3378 - max-width: 218px;  
3379 -}  
3380 -  
3381 -.setContent li:nth-of-type(2){  
3382 - display: none;  
3383 - margin-top: 16px;  
3384 -}  
3385 -  
3386 -@-moz-keyframes throbber-loader {  
3387 - 0% {  
3388 - background: #dde2e7;  
3389 - }  
3390 - 10% {  
3391 - background: #6b9dc8;  
3392 - }  
3393 -  
3394 -}  
3395 -@-webkit-keyframes throbber-loader {  
3396 - 0% {  
3397 - background: #dde2e7;  
3398 - }  
3399 - 10% {  
3400 - background: #6b9dc8;  
3401 - }  
3402 -  
3403 -}  
3404 -@keyframes throbber-loader {  
3405 - 0% {  
3406 - background: #dde2e7;  
3407 - }  
3408 - 10% {  
3409 - background: #6b9dc8;  
3410 - }  
3411 -  
3412 -}  
3413 -  
3414 -  
3415 -  
3416 -.header,.docBox,.botTurn,.videoWindow,.left,.tabTitle,.input-send,.curClassUserList {  
3417 - -webkit-user-select: none;  
3418 - -moz-user-select: none;  
3419 - -ms-user-select: none;  
3420 - user-select: none;  
3421 -}  
3422 -  
3423 -.leftGap{  
3424 - width:13px;  
3425 - height:100%;  
3426 - position: absolute;  
3427 - left:60px;  
3428 - top:0;  
3429 - display: none;  
3430 -}  
3431 -.rightGap{  
3432 - width:10px;  
3433 - height:100%;  
3434 - float: right;  
3435 - display: none;  
3436 -}  
3437 -/*控制左侧栏是否可点击的遮罩层*/  
3438 -.leftBarEnabledMask{  
3439 - position: absolute;  
3440 - top: 0;  
3441 - width: 100%;  
3442 - height: 100%;  
3443 - display: none;  
3444 -}  
3445 -  
3446 -/*控制左侧栏是否可点击的遮罩层*/  
3447 -.bottomBarEnabledMask{  
3448 - position: absolute;  
3449 - top: 0;  
3450 - width: 100%;  
3451 - height: 100%;  
3452 - display: none;  
3453 -}  
3454 -/*答题卡弹出框*/  
3455 -.answerAllBox{  
3456 - width:100%;  
3457 - height:100%;  
3458 - position: absolute;  
3459 - left:0;  
3460 - top:0;  
3461 - background: rgba(0, 0, 0, .7);  
3462 - display: none;  
3463 - z-index:502;  
3464 -}  
3465 -.themeBox{  
3466 - position: absolute;  
3467 - left: 0;  
3468 - right: 0;  
3469 - top: 0;  
3470 - bottom: 0;  
3471 - margin: auto;  
3472 - width: 480px;  
3473 - height: 560px;  
3474 - background: #fcfcfc;  
3475 -}  
3476 -.themeBox .themeHeadline{  
3477 - height: 35px;  
3478 - line-height: 35px;  
3479 - background: #3b3b3b;  
3480 -}  
3481 -.themeBox .themeHeadline .themeHeadlineTitle{  
3482 - position: absolute;  
3483 - left: 14px;  
3484 - color: #fff;  
3485 -}  
3486 -.themeBox .themeHeadline a{  
3487 - position: absolute;  
3488 - top: 0;  
3489 - right: 14px;  
3490 - color: #ffffff;  
3491 -}  
3492 -.themeBox .themeHeadline a:active{  
3493 - color: #3b3b3b;  
3494 -}  
3495 -.themeTit{  
3496 - height: 30px;  
3497 - line-height: 30px;  
3498 - padding-top:10px;  
3499 - border-bottom:1px solid #e1e1e1;  
3500 - font-weight: normal;  
3501 -}  
3502 -.themeTit1{  
3503 - font-weight: normal;  
3504 -}  
3505 -.themeTit1 b{  
3506 - float: left;  
3507 -}  
3508 -.themeTit1 p{  
3509 - font-size:12px;  
3510 - letter-spacing:1px;  
3511 -}  
3512 -.themeCount{  
3513 - width:90%;  
3514 - padding-left:5%;  
3515 - color:#666666;  
3516 -}  
3517 -.themeList{  
3518 - border:1px solid #e1e1e1;  
3519 - border-radius:4px;  
3520 - margin-top:6px;  
3521 - background: #fff;  
3522 - position: relative;  
3523 - height: 53px;  
3524 -}  
3525 -.themeTrends ul{  
3526 - margin-left:15px;  
3527 -}  
3528 -.themeList ul li{  
3529 - margin-top:10px;  
3530 -}  
3531 -.themeInput{  
3532 - overflow: hidden;  
3533 - height: auto;  
3534 - margin-bottom:5px;  
3535 -}  
3536 -.themeInput ul{  
3537 - width:310px;  
3538 - margin-top:10px;  
3539 -}  
3540 -.themeInput ul li{  
3541 - margin-bottom:10px;  
3542 - margin-top:0;  
3543 -}  
3544 -.themeList ul li{  
3545 - float: left;  
3546 -}  
3547 -.themeTrends ul li:last-of-type{  
3548 - margin-right:10px;  
3549 - font-weight:bold;  
3550 - background:#f7f7f7;  
3551 - border-radius:4px;  
3552 - cursor:pointer;  
3553 -}  
3554 -.themeAdd{  
3555 - width:30px;  
3556 - height:30px;  
3557 - border:1px solid #e1e1e1;  
3558 - border-radius:4px;  
3559 - line-height:30px;  
3560 - text-align: center;  
3561 - color:#666666;  
3562 -}  
3563 -.themeTrends ul li:last-of-type:hover{  
3564 - background:#dfdada;  
3565 -}  
3566 -.themeTrends ul li:not(:first-of-type),.themeTrends ul li:not(:last-of-type){  
3567 - float: left;  
3568 - margin-right:15px;  
3569 - position: relative;  
3570 -}  
3571 -.themeList ul li p{  
3572 - width:32px;  
3573 - height:32px;  
3574 - border:1px solid #e1e1e1;  
3575 - border-radius:4px;  
3576 - line-height:32px;  
3577 - text-align: center;  
3578 - color:#666666;  
3579 -}  
3580 -.themeList ul li span{  
3581 - display: none;  
3582 - position: absolute;  
3583 - right:-7px;  
3584 - top:-6px;  
3585 - width:15px;  
3586 - height:15px;  
3587 - line-height:13px;  
3588 - text-align: center;  
3589 - background:#e64b15;  
3590 - color:#fff;  
3591 - font-weight: bold;  
3592 - border-radius:50%;  
3593 - cursor:pointer;  
3594 -}  
3595 -.themeList ul li input{  
3596 - width:60px;  
3597 - height:30px;  
3598 - border:1px solid #e1e1e1;  
3599 - border-top:2px solid #e1e1e1;  
3600 - color:#666666;  
3601 - padding-left:5px;  
3602 -}  
3603 -.themeListFixed ul{  
3604 - padding-left: 5px;  
3605 -}  
3606 -.themeListFixed ul li{  
3607 - padding:0 5px;  
3608 -}  
3609 -.themeListFixed ul li p{  
3610 - width:80px;  
3611 - height: 32px;  
3612 - line-height: 32px;  
3613 - border:1px solid #e1e1e1;  
3614 - border-radius:4px;  
3615 - font-size: 14px;  
3616 -}  
3617 -.CountZero{  
3618 - height: 50px;  
3619 - clear: both;  
3620 -}  
3621 -.CountZero span{  
3622 - float: left;  
3623 - line-height: 50px;  
3624 - font-size: 14px;  
3625 - cursor:pointer;  
3626 -}  
3627 -.themeSelect{  
3628 - width:80px;  
3629 - height:30px;  
3630 - border:1px solid #e1e1e1;  
3631 - float: left;  
3632 - position: relative;  
3633 - margin-top:10px;  
3634 - font-size: 14px;  
3635 - cursor: pointer;  
3636 -}  
3637 -.themeSelect .show{  
3638 - height:30px;  
3639 - line-height: 30px;  
3640 - padding-left:5px;  
3641 -}  
3642 -.themeSelect i{  
3643 - position: absolute;  
3644 - width:0;  
3645 - height:0;  
3646 - border:5px solid transparent;  
3647 - border-top-color:#e1e1e1;  
3648 - right:5px;  
3649 - top:13px;  
3650 -}  
3651 -.themeSelect:hover i{  
3652 - border-top-color:#3b3b3b;  
3653 -}  
3654 -.themeSelect .themeUl{  
3655 - display: none;  
3656 - width:80px;  
3657 - height:126px;  
3658 - position: absolute;  
3659 - left:0;  
3660 - top:-126px;  
3661 - z-index:5;  
3662 - border:1px solid #696969;  
3663 - background: #fff;  
3664 -}  
3665 -.themeSelect ul li{  
3666 - height: 21px;  
3667 - line-height: 21px;  
3668 - font-size: 12px;  
3669 - padding-left:2px;  
3670 - cursor: pointer;  
3671 -}  
3672 -.themeSelect ul li:hover{  
3673 - background: #81868d;  
3674 - color:#fff;  
3675 -}  
3676 -.themeSelect .active{  
3677 - background: #3b3b3b;  
3678 - color:#fff;  
3679 -}  
3680 -.dynamicRight{  
3681 - float:right;  
3682 - width:70px;  
3683 - height:30px;  
3684 - line-height: 30px;  
3685 - text-align: center;  
3686 - font-size: 14px;  
3687 - background: #3b3b3b;  
3688 - color:#fff;  
3689 - margin-right:10px;  
3690 - border-radius: 3px;  
3691 - cursor:pointer;  
3692 - position: absolute;  
3693 - right:0;  
3694 - top:12px;  
3695 - display: none;  
3696 -}  
3697 -/*答题卡 input 错误提示框*/  
3698 -.inputErrerBox{  
3699 - display: none;  
3700 - position: absolute;  
3701 - z-index:5;  
3702 - left: 0;  
3703 - top: 0;  
3704 - width: 100%;  
3705 - height: 100%;  
3706 - background: rgba(0, 0, 0, .7);  
3707 -}  
3708 -.inputErrer{  
3709 - position: absolute;  
3710 - left: 0;  
3711 - right: 0;  
3712 - top: 0;  
3713 - bottom: 0;  
3714 - margin: auto;  
3715 - width: 280px;  
3716 - height: 152px;  
3717 - background: white;  
3718 -}  
3719 -.inputErrer .inputErrerTitle{  
3720 - height: 32px;  
3721 - line-height: 32px;  
3722 - background: #3b3b3b;  
3723 -}  
3724 -.inputErrer .inputErrerTitle a{  
3725 - position: absolute;  
3726 - top: 0;  
3727 - right: 14px;  
3728 - color: #ffffff;  
3729 -}  
3730 -.inputErrer .inputCount{  
3731 - height: 130px;  
3732 - line-height: 115px;  
3733 - text-align: center;  
3734 -}  
3735 -/*答题卡结果弹出框*/  
3736 -.resultBox{  
3737 - display: none;  
3738 - position: absolute;  
3739 - left: 0;  
3740 - right: 0;  
3741 - top: 22%;  
3742 - margin: auto;  
3743 - width: 450px;  
3744 - height:375px;  
3745 - z-index: 5;  
3746 - font-size: 14px;  
3747 -}  
3748 -.resultBox .resultHeadline{  
3749 - height: 35px;  
3750 - line-height: 35px;  
3751 - background: #3b3b3b;  
3752 -}  
3753 -.resultBox .resultHeadline .resultHeadlineTitle{  
3754 - position: absolute;  
3755 - left: 14px;  
3756 - color: #fff;  
3757 -}  
3758 -.resultBox .resultHeadline a{  
3759 - position: absolute;  
3760 - top: 0;  
3761 - right: 14px;  
3762 - color: #ffffff;  
3763 -}  
3764 -.resultBox .resultHeadline a:active{  
3765 - color: #3b3b3b;  
3766 -}  
3767 -.resultContent{  
3768 - background:#fcfcfc;  
3769 - width:100%;  
3770 - font-size: 14px;  
3771 - position: relative;  
3772 -}  
3773 -.resultContent .resultTit{  
3774 - width:90%;  
3775 - height:50px;  
3776 - position: relative;  
3777 - font-size: 14px;  
3778 - margin-left:5%;  
3779 -}  
3780 -.resultContent .resultTit p{  
3781 - position: absolute;  
3782 - top:15px;  
3783 -}  
3784 -.resultTit p:nth-child(1){  
3785 - left:10px;  
3786 -}  
3787 -.resultTit p:nth-child(2){  
3788 - right:10px;  
3789 - color:#3b3b3b;  
3790 -}  
3791 -.layerBox{  
3792 - width:310px;  
3793 - min-height:70px;  
3794 - background: #fff;  
3795 - border-radius: 5px;  
3796 - border:1px solid #d5d5d5;  
3797 - z-index: 6;  
3798 - position: absolute;  
3799 - padding:10px;  
3800 - display: none;  
3801 - word-break:break-all;  
3802 -}  
3803 -.layerBox span{  
3804 - display: inline-block;  
3805 - color:#d46363;  
3806 - height:25px;  
3807 - line-height: 25px;  
3808 -}  
3809 -.resultListUl{  
3810 - width:90%;  
3811 - margin-left:5%;  
3812 -}  
3813 -.resultListUl li{  
3814 - width:100%;  
3815 - height:50px;  
3816 - position:relative;  
3817 -}  
3818 -.resultListUl li b{  
3819 - position: absolute;  
3820 - left:0;  
3821 - top:5px;  
3822 -}  
3823 -.resultListUl li span{  
3824 - position: absolute;  
3825 - right:0;  
3826 - top:5px;  
3827 -}  
3828 -.resultListUl li .staticPlan{  
3829 - width:100%;  
3830 - height:10px;  
3831 - background:#e8e8e8;  
3832 - position: absolute;  
3833 - left:0;  
3834 - bottom:8px;  
3835 -}  
3836 -.resultListUl li .dynamicPlan{  
3837 - width:0%;  
3838 - height:10px;  
3839 - background:#92e325;  
3840 - position: absolute;  
3841 - left:0;  
3842 - bottom:8px;  
3843 -}  
3844 -.resultBtn{  
3845 - width:50%;  
3846 - height: 40px;  
3847 - margin-left:25%;  
3848 - padding:30px 0 20px 0;  
3849 -}  
3850 -.resultBtn p{  
3851 - width:80px;  
3852 - height:32px;  
3853 - float: left;  
3854 - margin:0 15px;  
3855 - color:#fff;  
3856 - text-align: center;  
3857 - line-height: 32px;  
3858 - cursor: pointer;  
3859 - border-radius:3px;  
3860 -}  
3861 -.resultBtn .resultConceal{  
3862 - background:#3b3b3b;  
3863 -}  
3864 -.resultBtn .resultTermination{  
3865 - background: #89817e;  
3866 -}  
3867 -/*学生界面弹出框*/  
3868 -.answerStudentBox{  
3869 - position: absolute;  
3870 - left: 0;  
3871 - right: 0;  
3872 - top: 0;  
3873 - bottom: 0;  
3874 - margin: auto;  
3875 - width: 450px;  
3876 - height: 250px;  
3877 - background: white;  
3878 - z-index: 5;  
3879 - font-size: 14px;  
3880 - display: none;  
3881 -}  
3882 -.answerStudentBox .studentHeadline{  
3883 - height: 35px;  
3884 - line-height: 35px;  
3885 - background: #3b3b3b;  
3886 - padding-left:14px;  
3887 - color:#fff;  
3888 -}  
3889 -.countdown{  
3890 - opacity: 0;  
3891 - width:90%;  
3892 - height:50px;  
3893 - margin-left:5%;  
3894 - padding-top:20px;  
3895 -}  
3896 -.signCountdown{  
3897 - opacity: 0;  
3898 - width:90%;  
3899 - height:50px;  
3900 - margin-left:5%;  
3901 - padding-top:20px;  
3902 -}  
3903 -.resultValueUl{  
3904 - width:100%;  
3905 - height: 50px;  
3906 -}  
3907 -.resultValueUl li{  
3908 - float: left;  
3909 - text-align: center;  
3910 - word-break: break-all;  
3911 -}  
3912 -.answerStudentContent .choiceBtn{  
3913 - width:50%;  
3914 - height: 40px;  
3915 - margin-left:25%;  
3916 - position: absolute;  
3917 - left:0;  
3918 - bottom:20px;  
3919 -}  
3920 -.choiceBtn p{  
3921 - width:80px;  
3922 - height:32px;  
3923 - float: left;  
3924 - margin:0 15px;  
3925 - color:#fff;  
3926 - text-align: center;  
3927 - line-height: 32px;  
3928 - cursor: pointer;  
3929 - border-radius:3px;  
3930 -}  
3931 -.choiceBtn .referBtn{  
3932 - background: #3b3b3b;  
3933 -}  
3934 -.choiceBtn .abandonBtn{  
3935 - background: #89817e;  
3936 -}  
3937 -/*点名弹出框*/  
3938 -.signAllBox{  
3939 - width:100%;  
3940 - height:100%;  
3941 - position: absolute;  
3942 - left:0;  
3943 - top:0;  
3944 - background: rgba(0, 0, 0, .7);  
3945 - display: none;  
3946 - z-index:502;  
3947 -}  
3948 -.signBox{  
3949 - position: absolute;  
3950 - left: 0;  
3951 - right: 0;  
3952 - top: 0;  
3953 - bottom: 0;  
3954 - margin: auto;  
3955 - width: 400px;  
3956 - height: 250px;  
3957 - background: white;  
3958 - font-size: 14px;  
3959 -}  
3960 -.signBox .signHeadline{  
3961 - height: 35px;  
3962 - line-height: 35px;  
3963 - background: #3b3b3b;  
3964 -}  
3965 -.signBox .signHeadline .signHeadlineTitle{  
3966 - position: absolute;  
3967 - left: 14px;  
3968 - color: #fff;  
3969 -}  
3970 -.signBox .signHeadline a{  
3971 - position: absolute;  
3972 - top: 0;  
3973 - right: 14px;  
3974 - color: #ffffff;  
3975 -}  
3976 -.signBox .signHeadline a:active{  
3977 - color: #3b3b3b;  
3978 -}  
3979 -.signContent{  
3980 - background:#fcfcfc;  
3981 - width:100%;  
3982 - font-size: 14px;  
3983 - height:215px;  
3984 -}  
3985 -.signSelect{  
3986 - width:140px;  
3987 - height:30px;  
3988 - border:1px solid #e1e1e1;  
3989 - position: relative;  
3990 - font-size: 14px;  
3991 -}  
3992 -.signSelect .show{  
3993 - height:32px;  
3994 - line-height:32px;  
3995 - padding-left:10px;  
3996 - cursor: pointer;  
3997 -}  
3998 -.signSelect i{  
3999 - position: absolute;  
4000 - width:0;  
4001 - height:0;  
4002 - border:5px solid transparent;  
4003 - border-top-color:#e1e1e1;  
4004 - right:5px;  
4005 - top:15px;  
4006 -}  
4007 -.signSelect:hover i{  
4008 - border-top-color:#3b3b3b;  
4009 -}  
4010 -.signUl{  
4011 - display: none;  
4012 - width:140px;  
4013 - height:110px;  
4014 - position: absolute;  
4015 - left:0;  
4016 - top:-110px;  
4017 - z-index:5;  
4018 - border:1px solid #696969;  
4019 - background: #fff;  
4020 -}  
4021 -.signSelect ul li{  
4022 - height: 22px;  
4023 - line-height: 22px;  
4024 - font-size: 12px;  
4025 -}  
4026 -.signSelect ul li:hover{  
4027 - background: #81868d;  
4028 - color:#fff;  
4029 -}  
4030 -.signSelect .active{  
4031 - background: #3b3b3b;  
4032 - color:#fff;  
4033 -}  
4034 -.signContentB{  
4035 - display: none;  
4036 -}  
4037 -.signContent .signSelect{  
4038 - height:32px;  
4039 - position:absolute;  
4040 - left:35%;  
4041 - top:100px;  
4042 -}  
4043 -.signContent .signBtn{  
4044 - height:50px;  
4045 - position: absolute;  
4046 - bottom:35px;  
4047 - left:35%;  
4048 -}  
4049 -.signBtn .sponsorSign{  
4050 - width:140px;  
4051 - height:45px;  
4052 - line-height: 45px;  
4053 - background: #3b3b3b;  
4054 - color:#fff;  
4055 - text-align: center;  
4056 - border-radius:3px;  
4057 - font-size: 16px;  
4058 - cursor: pointer;  
4059 -}  
4060 -.turnListBox{  
4061 - width:100%;  
4062 - height:150px;  
4063 - margin-top:10px;  
4064 - overflow: hidden;  
4065 -}  
4066 -.turnListBox ul{  
4067 - width:85%;  
4068 - height:100%;  
4069 - overflow-y: auto;  
4070 - margin-left:13%;  
4071 -}  
4072 -.turnListBox ul li{  
4073 - width:100%;  
4074 - height:40px;  
4075 - line-height: 40px;  
4076 -}  
4077 -.turnListBox ul li p{  
4078 - float: left;  
4079 -}  
4080 -.turnListBox ul li .turnListItemName{  
4081 - width:40%;  
4082 -}  
4083 -.turnListBox ul li .turnListItemTime{  
4084 - width:60%;  
4085 -}  
4086 -.turnBox{  
4087 - position: absolute;  
4088 - right:5px;  
4089 - bottom:15px;  
4090 - width:60%;  
4091 -}  
4092 -.turnListBox ::-webkit-scrollbar{  
4093 - width:11px;  
4094 -}  
4095 -.turnListBox ::-webkit-scrollbar-thumb{  
4096 - background:#c6cacd;  
4097 -}  
4098 -.turnBox p{  
4099 - float: left;  
4100 - width:50%;  
4101 - height:32px;  
4102 - line-height: 32px;  
4103 - text-align: center;  
4104 -}  
4105 -.turnBox .turnResult{  
4106 - color:#3b3b3b;  
4107 - font-size: 16px;  
4108 -}  
4109 -.turnBox .turnResultBtn{  
4110 - background:#3b3b3b;  
4111 - color:#fff;  
4112 - border-radius:3px;  
4113 - cursor: pointer;  
4114 -}  
4115 -/*学生端*/  
4116 -.signStudentBox{  
4117 - position: absolute;  
4118 - left: 0;  
4119 - right: 0;  
4120 - top: 0;  
4121 - bottom: 0;  
4122 - margin: auto;  
4123 - width: 400px;  
4124 - height: 250px;  
4125 - background: white;  
4126 - z-index: 5;  
4127 - font-size: 14px;  
4128 - display: none;  
4129 -}  
4130 -.signStudentBox .signStudentHeadline{  
4131 - height: 35px;  
4132 - line-height: 35px;  
4133 - background: #3b3b3b;  
4134 -}  
4135 -.signStudentBox .signStudentHeadline .signStudentHeadlineTitle{  
4136 - position: absolute;  
4137 - left: 14px;  
4138 - color: #fff;  
4139 -}  
4140 -.signStudentBox .signStudentHeadline a{  
4141 - position: absolute;  
4142 - top: 0;  
4143 - right: 14px;  
4144 - color: #ffffff;  
4145 -}  
4146 -.signStudentBox .signStudentHeadline a:active{  
4147 - color: #3b3b3b;  
4148 -}  
4149 -.signStudentContent{  
4150 - background:#fcfcfc;  
4151 - width:100%;  
4152 - height:215px;  
4153 - font-size: 14px;  
4154 -}  
4155 -.turnStudentBtn{  
4156 - width:140px;  
4157 - height:40px;  
4158 - line-height: 40px;  
4159 - background: #3b3b3b;  
4160 - color:#fff;  
4161 - text-align: center;  
4162 - border-radius:3px;  
4163 - font-size: 16px;  
4164 - cursor: pointer;  
4165 - position: absolute;  
4166 - left: 0;  
4167 - right: 0;  
4168 - margin: auto;  
4169 - top:60%;  
4170 -}  
4171 -  
4172 -/*底部视频区域*/  
4173 -.botVideoWindow{  
4174 - width: 100%;  
4175 - height:148px;  
4176 - position: relative;  
4177 - float: left;  
4178 - display: none;  
4179 - overflow-x: scroll;  
4180 - overflow-y: hidden;  
4181 -}  
4182 -.botH5VideoBox{  
4183 - width:100%;  
4184 - /*width: 895px;*/  
4185 - height:144px;  
4186 - padding-top:14px;  
4187 - display: none;  
4188 -}  
4189 -.botFlashVideoBox{  
4190 - /*width: 895px;*/  
4191 - width: 100%;  
4192 - height:144px;  
4193 - position: absolute;  
4194 - left:0;  
4195 - top:0;  
4196 - display: none;  
4197 -}  
4198 -.botH5VideoSingleBox{  
4199 - width:174px;  
4200 - height:130px;  
4201 - background: #262626;  
4202 - /*margin-right:10px;*/  
4203 - margin-left: 10px;  
4204 - float: left;  
4205 - display: none;  
4206 -}  
4207 -  
4208 -.centre{  
4209 - width:150px;  
4210 - height:100%;  
4211 - float: right;  
4212 -}  
4213 -  
4214 -/*显示图片大图*/  
4215 -.imagesLargerBox{  
4216 - width:100%;  
4217 - height:100%;  
4218 - background: rgba(0, 0, 0, .7);  
4219 - position: absolute;  
4220 - left:0;  
4221 - top:0;  
4222 -}  
4223 -.magnifyHeadline{  
4224 - width:100%;  
4225 - height:35px;  
4226 -}  
4227 -.magnifyHeadlineA{  
4228 - position: absolute;  
4229 - right:14px;  
4230 - top:14px;  
4231 - color:#fff;  
4232 -}  
4233 -.magnifyImgBox{  
4234 - width:100%;  
4235 - height:100%;  
4236 -}  
4237 -.magnifyImg{  
4238 - max-width:90%;  
4239 - max-height: 90%;  
4240 - position: absolute;  
4241 - left:0;  
4242 - right:0;  
4243 - top:0;  
4244 - bottom:0;  
4245 - margin:auto;  
4246 - background-size:100% 100%;  
4247 -}  
4248 -  
4249 -/*聊天发送图片*/  
4250 -  
4251 -.message .chatImg{  
4252 - width: 100px;  
4253 - height: auto;  
4254 - cursor: pointer;  
4255 -}  
4256 -.fileImgBtn{  
4257 - float: left;  
4258 - font-size: 18px;  
4259 - color: #ccc;  
4260 - margin-left: 10px;  
4261 - margin-top: 7px;  
4262 - cursor: pointer;  
4263 -}  
4264 -.fileImgInput{  
4265 - position: absolute;  
4266 - left: 67px;  
4267 - top: 7px;  
4268 - width: 20px;  
4269 - height: 20px;  
4270 - opacity: 0;  
4271 - cursor: pointer;  
4272 - overflow: hidden;  
4273 - font-size: 0;  
4274 -}  
4275 -  
4276 -/*媒体共享控制条*/  
4277 -.h5MediaShareControls{  
4278 - position: absolute;  
4279 - bottom:0;  
4280 - height: 36px;  
4281 - width: 100%;  
4282 - min-width: 330px;  
4283 - background: #4f4f52;  
4284 - display: none;  
4285 -}  
4286 -/*暂停/播放按钮*/  
4287 -.mediaShareProgressBtn{  
4288 - float: left;  
4289 - width: 12px;  
4290 - height: 36px;  
4291 - line-height: 36px;  
4292 - margin-right: 15px;  
4293 -}  
4294 -.mediaShareProgressPlay{  
4295 - margin-top: 11px;  
4296 - margin-left: 10px;  
4297 - width: 15px;  
4298 - height: 15px;  
4299 - float: left;  
4300 - cursor: pointer;  
4301 - background: url("../images/media/play-normal.png") no-repeat;  
4302 -}  
4303 -.mediaShareProgressPause{  
4304 - margin-top: 11px;  
4305 - margin-left: 10px;  
4306 - width: 15px;  
4307 - height: 15px;  
4308 - float: left;  
4309 - cursor: pointer;  
4310 - background: url("../images/media/pause-normal.png") no-repeat;  
4311 -}  
4312 -  
4313 -/*进度条*/  
4314 -.mediaSharePlayProgressBox{  
4315 - float: left;  
4316 - margin-left: 10px;  
4317 - width: 86%;  
4318 - height: 2px;  
4319 - margin-top: 3px;  
4320 - position: relative;  
4321 -}  
4322 -.mediaSharePlayProgressBox span{  
4323 - display: inline-block;  
4324 -}  
4325 -.mediaShare_bg{  
4326 - width: 100%;  
4327 - height: 7px;  
4328 - background: #b2b2b2;  
4329 - position: absolute;  
4330 - left: 0;  
4331 - top: 12px;  
4332 - cursor: pointer;  
4333 -}  
4334 -.mediaShare_color{  
4335 - height: 7px;  
4336 - width: 0%;  
4337 - background: #3598db; 547 +.usersign{
  548 + width:420px;
  549 + height: 475px;
4338 position: absolute; 550 position: absolute;
4339 left: 0; 551 left: 0;
4340 - top: 12px;  
4341 - cursor: pointer;  
4342 -}  
4343 -.mediaShare_btn{  
4344 - width: 20px;  
4345 - height: 20px;  
4346 - background: url(../images/media/Play-Control.png) no-repeat;  
4347 - position: absolute;  
4348 - left: 0%;  
4349 - top: 9px;  
4350 - margin-left: -4px;  
4351 - cursor: pointer;  
4352 -}  
4353 -.mediaShareProgressVolBtn{  
4354 - position: absolute;  
4355 - right: 0px;  
4356 - width: 12px;  
4357 - height: 36px;  
4358 - line-height: 36px;  
4359 - margin-right: 22px;  
4360 -}  
4361 -.mediaShareTimestamp{  
4362 - float: left;  
4363 - margin-left: 8px;  
4364 - width: 90px;  
4365 - height: 20px;  
4366 - margin-top: 10px;  
4367 - position: relative;  
4368 - font-size: 14px;  
4369 - color: #b2b2b2; 552 + right: 0;
  553 + top: 0;
  554 + bottom: 0;
  555 + margin: auto;
  556 + background: #fff;
4370 } 557 }
4371 -.mediaVolumePlay{  
4372 - margin-top: 12px;  
4373 - margin-left: 8px;  
4374 - width: 17px;  
4375 - height: 15px;  
4376 - float: left;  
4377 - cursor: pointer;  
4378 - background: url(../images/media/speaker-normal.png) no-repeat; 558 +.userLogin{
  559 + height:420px;
4379 } 560 }
4380 -  
4381 -.mediaSharePlayProgressVoiceBox{  
4382 - display: none;  
4383 - width: 10px;  
4384 - height: 80px; 561 +.usersignA{
  562 + font-size: 16px;
4385 position: absolute; 563 position: absolute;
4386 - right: 20px;  
4387 - bottom: 48px; 564 + right:10px;
  565 + top:10px;
  566 + color: #666666;
4388 } 567 }
4389 -.mediaShareVoice_bg{  
4390 - width: 3px;  
4391 - height: 100%;  
4392 - background: #b2b2b2;  
4393 - position: absolute;  
4394 - right: 0.5px;  
4395 - top: 12px; 568 +.usersignTit{
  569 + font-size: 16px;
  570 + text-align: center;
  571 + height: 60px;
  572 + line-height: 60px;
  573 + border-bottom:1px solid #e6e6e6;
  574 + margin:0 30px 25px;
  575 + color:#666666;
4396 } 576 }
4397 -.mediaShareVoice_color{  
4398 - height: 100%;  
4399 - width: 3px;  
4400 - background: #3598db;  
4401 - position: absolute;  
4402 - left: 7px;  
4403 - bottom: -12px; 577 +.usersignLi{
  578 + height:32px;
  579 + margin:0 70px 20px;
  580 + line-height: 32px;
  581 + border-radius: 2px;
  582 + border:1px solid #e6e6e6;
  583 + font-size: 12px;
4404 } 584 }
4405 -.mediaShareVoice_btn{  
4406 - width: 10px;  
4407 - height: 10px;  
4408 - background: url(../images/media/volume-control.png) no-repeat;  
4409 - position: absolute;  
4410 - top: 0%;  
4411 - margin-left: 4px;  
4412 - margin-top: 7px;  
4413 - cursor: pointer; 585 +.userVerifyLi{
  586 + width: 157px;
  587 + position: relative;
4414 } 588 }
  589 +.userVerifyLiInput{
4415 590
4416 -/*1v1视频区域样式*/  
4417 -.media1v1BoxView{  
4418 - width:320px;  
4419 - height:100%;  
4420 - float: right;  
4421 - position: relative;  
4422 - display: none;  
4423 } 591 }
4424 -.media1v1BoxView_flash{  
4425 - width:320px;  
4426 - height:490px;  
4427 - display: none; 592 +.usersignInput{
  593 + padding-left:20px;
  594 + border:none;
  595 + background: none;
  596 + outline: none;
4428 } 597 }
4429 -.media1v1BoxView_h5{  
4430 - width:320px;  
4431 - height:490px; 598 +.userVerifyLiInputBtn{
  599 + height:32px;
  600 + border:none;
  601 + color:#fff;
  602 + background: #3498db;
  603 + width:100px;
  604 + text-align: center;
  605 + margin-left:20px;
4432 position: absolute; 606 position: absolute;
4433 - left:0; 607 + border-radius: 3px;
  608 + right:-120px;
4434 top:0; 609 top:0;
4435 - display: none;  
4436 -}  
4437 -.media1v1BoxView_top,.media1v1BoxView_bottom{  
4438 - width:320px;  
4439 - height:240px; 610 + cursor: pointer;
4440 } 611 }
4441 -.media1v1BoxView_top{ 612 +.permitSign{
  613 + border:none;
4442 margin-bottom:10px; 614 margin-bottom:10px;
  615 + margin-top: -10px;
  616 + position: relative;
4443 } 617 }
4444 -/*视频区域上一步下一步按钮*/  
4445 -.styleStep{  
4446 - width:15px;  
4447 - height:30px;  
4448 - position: absolute;  
4449 - bottom:50px;  
4450 - background: #474747;  
4451 - opacity:.6;  
4452 - -webkit-border-radius:4px;  
4453 - -moz-border-radius:4px;  
4454 - border-radius:4px;  
4455 -}  
4456 -  
4457 -.nextStep {  
4458 - background: url("../images/media/turnRight-hover.png") no-repeat center center;  
4459 - background-size: 100% 100%;  
4460 - right: 3px;  
4461 - -webkit-transform: translate(0, -50%);  
4462 - -moz-transform: translate(0, -50%);  
4463 - -ms-transform: translate(0, -50%);  
4464 - -o-transform: translate(0, -50%);  
4465 - transform: translate(0, -50%);  
4466 - cursor: pointer;  
4467 - display: none; 618 +.selectStatus{
  619 + padding-left:20px;
  620 + color:#333333;
4468 } 621 }
4469 -.prevStep {  
4470 - background: url("../images/media/turnLeft-hover.png") no-repeat center center;  
4471 - background-size: 100% 100%;  
4472 - position: absolute;  
4473 - left: 13px;  
4474 - -webkit-transform: translate(0, -50%);  
4475 - -moz-transform: translate(0, -50%);  
4476 - -ms-transform: translate(0, -50%);  
4477 - -o-transform: translate(0, -50%);  
4478 - transform: translate(0, -50%); 622 +.btnUsersign{
  623 + width: 100%;
  624 + height:34px;
  625 + background: #3498db;
  626 + color:#fff;
  627 + text-align: center;
  628 + border:none;
  629 + border-radius: 3px;
4479 cursor: pointer; 630 cursor: pointer;
4480 - display: none;  
4481 } 631 }
4482 -  
4483 -/*flash和浏览器和摄像头麦克风错误*/  
4484 -.errorHintBox{  
4485 - z-index: 2000;  
4486 - width:100%;  
4487 - height:100%;  
4488 - position: absolute;  
4489 - left:0;  
4490 - top:0;  
4491 - background: rgba(0, 0, 0, .7); 632 +.permitSignIcon{
4492 display: none; 633 display: none;
4493 } 634 }
4494 -.errorHint{ 635 +.permitSignIcon+label{
  636 + width: 18px;
  637 + height:18px;
  638 + display: inline-block;
  639 + cursor: pointer;
  640 + margin-right:15px;
  641 + background: url(../images/circle.png) no-repeat;
4495 position: absolute; 642 position: absolute;
4496 left:0; 643 left:0;
4497 - right: 0;  
4498 - top:0;  
4499 - bottom:0;  
4500 - margin:auto;  
4501 - width: 370px;  
4502 - height: 220px;  
4503 - background: #4f4e53;  
4504 - color:#fff;  
4505 - display: none;  
4506 -}  
4507 -.errorHint1{  
4508 - height: 174px;  
4509 -}  
4510 -.errorHint2{  
4511 - height:210px;  
4512 -}  
4513 -.errorHint3{  
4514 - height: 190px;  
4515 -}  
4516 -.errorFlashHintHeadline{  
4517 - height: 35px;  
4518 - line-height: 35px;  
4519 - background: #3b3b3b;  
4520 -}  
4521 -.errorHintHeadlineTitle{  
4522 - position: absolute;  
4523 - left: 14px;  
4524 - font-size: 12px;  
4525 - color: #fff;  
4526 -}  
4527 -.errorFlashHintA{  
4528 - position: absolute;  
4529 - top: 0;  
4530 - right: 14px;  
4531 - color: #ffffff;  
4532 -}  
4533 -.errorFlashHintA:hover{  
4534 - color: #CCCCCC;  
4535 -}  
4536 -.errorFlashHintA:active{  
4537 - color: #3b3b3b;  
4538 -}  
4539 -.errorHintTit{  
4540 - font-size: 14px;  
4541 - padding:7px 0 7px 20px; 644 + top:5px;
4542 } 645 }
4543 -.errorFlashHintList{  
4544 - font-size:12px;  
4545 - height: 26px;  
4546 - line-height: 26px;  
4547 - color:#fff;  
4548 - text-decoration: underline; 646 +.permitSignIcon:checked+label{
  647 + width: 18px;
  648 + height:18px;
4549 display: inline-block; 649 display: inline-block;
4550 - width:100%;  
4551 - cursor: pointer; 650 + background: url(../images/circle01.png) no-repeat;
4552 } 651 }
4553 -.errorFlashHintList:hover{  
4554 - text-decoration: underline;  
4555 - color:#5fa9da; 652 +.permitSignMsg{
  653 + padding-left:30px;
4556 } 654 }
4557 -.errorFlashIcon{  
4558 - padding:0 5px 2px 10px;  
4559 -}  
4560 -.errorHintContent{  
4561 - font-size: 14px;  
4562 - text-align: center;  
4563 - padding-top:70px;  
4564 -}  
4565 -.errornetworkHintContent{  
4566 - font-size: 14px;  
4567 - text-align: center;  
4568 - padding-top:40px; 655 +.btnUsersignLi{
  656 + margin-bottom: 10px;
4569 } 657 }
4570 -.errorFlashTit{  
4571 - display: inline-block;  
4572 - font-size: 14px; 658 +.loginBtnBox{
  659 + width:280px;
  660 + font-size: 12px;
  661 + text-align: right;
  662 + margin:0 70px;
4573 } 663 }
4574 -.errorFlashLink{ 664 +.loginBtn{
4575 color:#d95136; 665 color:#d95136;
4576 - text-decoration: underline;  
4577 -}  
4578 -.errorFlashLink:hover{  
4579 - text-decoration: underline;  
4580 -}  
4581 -.flashHintImg{  
4582 - width:92%;  
4583 - height:100%;  
4584 - margin-left:4%;  
4585 -}  
4586 -.errorDownloadFlashTit{  
4587 - font-size: 14px;  
4588 - padding:40px 20px 7px 20px;  
4589 } 666 }
4590 -.errorSetFlashHintTit{  
4591 - font-size: 14px;  
4592 - padding:25px 0 7px 20px;  
4593 -}  
4594 -.errorSetFlashHintInfo{  
4595 - font-size: 14px;  
4596 - border: 1px solid #666;  
4597 - margin:10px;  
4598 - padding:15px 10px 20px; 667 +.usersignNameLi{
  668 + position: relative;
4599 } 669 }
4600 -.errorSetFlashHintA{  
4601 - font-size: 14px;  
4602 - text-decoration: underline;  
4603 - color:#3498db; 670 +.requiredMsg{
4604 position: absolute; 671 position: absolute;
4605 - bottom: 25px;  
4606 - right:36%;  
4607 - width: 115px;  
4608 - text-align: center; 672 + right:-15px;
  673 + top:4px;
  674 + font-size: 20px;
  675 + line-height: 32px;
  676 + color:#d95136;
4609 } 677 }
4610 -.errorSetFlashHintB{  
4611 - font-size: 14px;  
4612 - text-decoration: underline;  
4613 - color:#3498db;  
4614 - position: absolute;  
4615 - bottom: 25px;  
4616 - right:41%; 678 +/*登录*/
  679 +.forgetPasswordBtn{
  680 + width:280px;
  681 + font-size: 12px;
  682 + text-align: right;
  683 + margin:0 70px;
  684 + color:#333333;
4617 cursor: pointer; 685 cursor: pointer;
4618 - display: none;  
4619 - right:36%;  
4620 - width: 115px;  
4621 - text-align: center;  
4622 -}  
4623 -.errorSetFlashHintA:hover,.errorSetFlashHintB:hover{  
4624 - color:#5fa9da;  
4625 - text-decoration: underline; 686 + margin-bottom:20px;
4626 } 687 }
4627 -.errorFlashListLeft{  
4628 - float: left;  
4629 - width:40%;  
4630 - padding-left:10px; 688 +.nowSignBtn{
  689 + color:#d95136;
  690 + margin-top:20px;
4631 } 691 }
4632 -.errorFlashListLeft1{  
4633 - width:53%; 692 +.openidOauthBox{
  693 + width:280px;
  694 + margin:0 70px;
4634 } 695 }
4635 -.showWindowText{  
4636 - font-size: 14px;  
4637 - color: #fff;  
4638 - text-align: center;  
4639 - margin-top: 28px;  
4640 - line-height: 14px;  
4641 - position: absolute;  
4642 - left: 50%;  
4643 - top: 40px;  
4644 - width: 200px;  
4645 - margin-left: -100px;  
4646 -}  
4647 -.closeInfoBtn{  
4648 - width: 70px;  
4649 - height: 32px;  
4650 - background: #999;  
4651 - border: 0;  
4652 - margin-left: 72px;  
4653 - margin-top: 77px; 696 +.openidOauth{
  697 + width:42px;
  698 + color:#bfbfbf;
4654 cursor: pointer; 699 cursor: pointer;
4655 - color: #fff;  
4656 - border-radius: 3px;  
4657 -  
4658 -}  
4659 -.cancelCloseInfo{  
4660 - background: #3498db;  
4661 - margin-top: 78px;  
4662 - margin-left: 93px;  
4663 -}  
4664 -.errorPublicHintContent{  
4665 - font-size: 14px;  
4666 - color: #fff;  
4667 - text-align: center;  
4668 - line-height: 14px;  
4669 - position: absolute;  
4670 - left: 50%;  
4671 - top: 45%;  
4672 - width: 250px;  
4673 - margin-left: -125px;  
4674 - line-height: 16px;  
4675 -}  
4676 -.setFlashGuideTit{  
4677 - font-size: 14px;  
4678 - padding-left:20px;  
4679 - padding-top:10px;  
4680 -}  
4681 -.setFlashGuideList{  
4682 - float: left;  
4683 - width:100%;  
4684 - height:30px;  
4685 - line-height: 30px;  
4686 - font-size: 14px;  
4687 -}  
4688 -.setFlashGuideListP{  
4689 float: left; 700 float: left;
4690 - padding-left:10px;  
4691 } 701 }
4692 -.setFlashHintA{  
4693 - float: right;  
4694 - text-decoration: underline;  
4695 - color:#3498db;  
4696 - padding-right:20px; 702 +.openidOauth1{
  703 + margin:0 60px;
4697 } 704 }
4698 -.setFlashHintA:hover{  
4699 - color:#5fa9da;  
4700 - text-decoration: underline; 705 +.openidOauth2{
  706 + padding-left:20px;
4701 } 707 }
4702 -  
4703 -/*跳转到指定页*/  
4704 -.botTurn .pageNo input{  
4705 - float: right;  
4706 - margin: 12px 10px 0 5px;  
4707 - width: 20px;  
4708 - height: 20px;  
4709 - border: 1px solid #ccc;  
4710 - border-radius: 3px;  
4711 - background: #333333;  
4712 - position: relative;  
4713 - color: #CCCCCC;  
4714 - text-align: center;  
4715 - outline: none; 708 +.weChatLogin{
  709 + width:42px;
  710 + height:42px;
  711 + display: inline-block;
4716 } 712 }
4717 -.botTurn .turn .go{  
4718 - float: right;  
4719 - margin: 12px 10px 0 5px;  
4720 - width: 28px;  
4721 - height: 22px;  
4722 - line-height: 22px;  
4723 - border-radius: 3px;  
4724 - position: relative;  
4725 - font-size: 12px;  
4726 - color: #fff;  
4727 - cursor: pointer;  
4728 - background: #3598db; 713 +.openidOauthTit{
  714 + width: 42px;
4729 text-align: center; 715 text-align: center;
  716 + padding-top:5px;
  717 + display: inline-block;
4730 } 718 }
4731 -  
4732 -/*人员搜索*/  
4733 -.searchBox{  
4734 - display: none;  
4735 - position: absolute;  
4736 - left: 10px;  
4737 - top: 10px;  
4738 - width: 300px;  
4739 - height: 32px;  
4740 - border-radius: 4px;  
4741 - z-index: 1;  
4742 - background: #e3e4e6;  
4743 -}  
4744 -.searchName{  
4745 - height: 32px;  
4746 - width: 265px;  
4747 - outline: none;  
4748 - border: none;  
4749 - margin-left: 10px;  
4750 - background: #e3e4e6;  
4751 - font-size: 12px;  
4752 - color: #333;  
4753 -}  
4754 -.clearInput{  
4755 - position: absolute;  
4756 - top: 8px;  
4757 - cursor: pointer;  
4758 -  
4759 -}  
4760 -/*flash和浏览器和摄像头麦克风错误 END*/  
4761 -/* warn警告框 */  
4762 -.warnHintBox{  
4763 - z-index: 2000;  
4764 - width:300px;  
4765 - height:120px;  
4766 - position: absolute;  
4767 - left: 0;  
4768 - right: 0;  
4769 - top: 0;  
4770 - bottom: 0;  
4771 - margin: auto;  
4772 - background: #fffdfd;  
4773 - cursor: default;  
4774 - font-size: 14px;  
4775 - border-radius:4px;  
4776 - box-shadow: 1px 3px 6px #adadad;  
4777 - border: 1px solid #c1baba;  
4778 - display: none;  
4779 -}  
4780 -.warnHintA{  
4781 - position: absolute;  
4782 - right:8px;  
4783 - top:6px; 719 +/*删除*/
  720 +.removeHandler{
  721 + width: 310px;
  722 + height:170px;
4784 } 723 }
4785 -.warnHintContent{  
4786 - width:100%;  
4787 - height:120px;  
4788 - line-height: 120px; 724 +.removeHandlerContent{
4789 text-align: center; 725 text-align: center;
  726 + font-size: 16px;
  727 + color:#333333;
  728 + margin-top:60px;
4790 } 729 }
4791 -/* warn警告框 END */  
4792 -/*兼课声音控制*/  
4793 -.invisible_speak{  
4794 - float: left;  
4795 - margin:10px 0 0 20px;  
4796 - height:20px;  
4797 - display: none;  
4798 -}  
4799 -.invisible_speakVolume{  
4800 - width: 50px;  
4801 - height: 15px;  
4802 - float: left;  
4803 - position: relative;  
4804 - left:10px;  
4805 - top:3px;  
4806 -}  
4807 -.invisible_speakVolumeBg{  
4808 - width: 50px;  
4809 - height: 15px;  
4810 - background: url("../images/music/invisible_novolume.png");  
4811 -}  
4812 -.invisible_speakVolumePlanBox{  
4813 - width: 50px;  
4814 - height: 15px;  
4815 - overflow: hidden;  
4816 - position: absolute;  
4817 - left:0;  
4818 - top:0;  
4819 -}  
4820 -.invisible_speakVolumePlan{  
4821 - width: 0%;  
4822 - height: 15px;  
4823 - position: absolute;  
4824 - left:0;  
4825 - top:0;  
4826 - background: url("../images/music/invisible_volume.png"); 730 +.removeHandlerBtn{
  731 + margin-top:30px;
4827 } 732 }
4828 -.invisible_speakBtn{  
4829 - float: left;  
4830 - position: relative;  
4831 - width: 16px;  
4832 - height: 18px; 733 +.removeHandlerBtn button{
  734 + border:none;
  735 + width:72px;
  736 + height:34px;
  737 +
  738 + border-radius: 3px;
4833 } 739 }
4834 -.invisible_speakBtnOpen{  
4835 - width: 16px;  
4836 - height: 18px;  
4837 - cursor: pointer; 740 +.removeConfirm{
  741 + margin:0 30px 0 60px;
  742 + background: #3498db;
4838 } 743 }
4839 -.invisible_speakBtnClose{  
4840 - display: none;  
4841 - position: absolute;  
4842 - left: 0;  
4843 - top:1px;  
4844 - width: 16px;  
4845 - height: 18px;  
4846 - cursor: pointer; 744 +.removeCancel{
  745 + background: #e6e6e6;
4847 } 746 }
@@ -6,1245 +6,363 @@ @@ -6,1245 +6,363 @@
6 <link rel="stylesheet" href="stylesheets/style.css"/> 6 <link rel="stylesheet" href="stylesheets/style.css"/>
7 </head> 7 </head>
8 <body> 8 <body>
9 -<div class="box">  
10 - <!--头部--> 9 +<div class="baseboardBox">
  10 + <!--头部导航-->
  11 + <div class="headerBg">
11 <div class="header"> 12 <div class="header">
12 - <li class="classStatusIcon iconfont"></li>  
13 - <!--左侧显示当前状态-->  
14 - <li class="classStatus"></li>  
15 - <!--当前课堂进行时间-->  
16 - <li class="classTimestampText"></li>  
17 - <!--当前课堂人数-->  
18 - <li class="curClassUserNum"><span id="memberNum"></span>  
19 - <span class="curClassUserNumTotal">0</span>  
20 - </li>  
21 - <!--左侧显示当前课堂主题-->  
22 - <li class="classTheme"></li>  
23 -  
24 - <div class="exit header_title">  
25 - <span class="exitText header_text">退出</span>  
26 - <span class=" iconfont">&#xe607;</span>  
27 - </div>  
28 - <div class="setting header_title">  
29 - <span class="settingText header_text">设置</span>  
30 - <span class="iconfont">&#xe631;</span>  
31 - </div>  
32 - <div class="help header_title">  
33 - <span class="helpText header_text">帮助</span>  
34 - <span class="iconfont">&#xe608;</span>  
35 - </div>  
36 - <div class="sign header_title">  
37 - <span class="signText header_text">点名</span>  
38 - <span class="iconfont">&#xe67c;</span>  
39 - </div>  
40 - <div class="answer header_title">  
41 - <span class="answerText header_text">答题卡</span>  
42 - <span class="iconfont">&#xe67a;</span>  
43 - </div>  
44 - <div class="closeClass header_title">  
45 - <span class="startText header_text" id="endClassroom">结束课堂</span>  
46 - <span class="iconfont">&#xe660;</span>  
47 - </div>  
48 - <div class="pauseClass header_title">  
49 - <span class="startText header_text" id="pauseClassroom">暂停上课</span>  
50 - <span class="iconfont">&#xe60a;</span>  
51 - </div>  
52 - <div class="startClass header_title">  
53 - <span class="startText header_text" id="startClassroom">开始上课</span>  
54 - <span class="iconfont">&#xe61d;</span>  
55 - </div>  
56 - </div>  
57 - <!--头部以下的内容区域-->  
58 - <div class="mainContentBox clear" id="mainContentBox">  
59 - <div class="right">  
60 - <div class="videoWindow">  
61 - <!--flash播放器-->  
62 - <div class="videoDivBox" id="videoDivBox" style="background-color: #4c4c4c; width: 320px;height: 240px;">  
63 - </div>  
64 - <video id="replayVideo" poster="images/waiting.png" width="320" height="240"  
65 - style="background-color: #36a1c6;position: absolute;top: 0px;left: 0px">  
66 - 您的浏览器不支持 video 标签。  
67 - </video>  
68 - </div>  
69 - <div class="discussAndUsers">  
70 - <ul class="tabTitle">  
71 - <li class="userListTitle">  
72 - <span id="rosterIcon" class="iconfont userListIcon">&#xe642;</span>  
73 - <span><em id="member">成员</em><em class="raiseNum"></em></span>  
74 - </li>  
75 - <li class="discussTitle ">  
76 - <span class="iconfont userListIcon">&#xe643;</span>  
77 - <span id="discuss">讨论</span>  
78 - </li> 13 + <div class="header_img">
  14 + <img src="images/logo.png" alt="">
  15 + </div>
  16 + <ul class="header_list">
  17 + <li class="header_listMsg header_listTeacherMsg active" id="defaultBtn">首页</li>
  18 + <li class="header_listMsg" id="liveBtn">直播课堂</li>
  19 + <li class="header_listMsg header_listTeacherMsg" id="lanclassBtn">互动课堂</li>
  20 + <li class="header_listMsg header_listTeacherMsg" id="teacherBtn">老师</li>
79 </ul> 21 </ul>
80 - <!--举手按钮-->  
81 - <div id="raiseBtn" class="raiseBtn iconfont" title="举手按钮">&#xe603;</div>  
82 - <div class="controlBrush" title="控制学生画笔" id="controlBrush"></div>  
83 - <div class="tabCon curClassOn">  
84 - <!--搜索框-->  
85 - <div id="searchBox" class="searchBox">  
86 - <input id="searchName" class="searchName" type="text"/>  
87 - <span id="clearInput" class= "clearInput iconfont">&#xe635;</span>  
88 - </div>  
89 - <!--成员列表-->  
90 - <div class="curClassUserList">  
91 - <div id="curClassUserListTeacher"></div>  
92 - <div id="curClassUserListRaise"></div>  
93 - <div id="curClassUserListCommon"></div>  
94 - </div>  
95 - </div>  
96 - <div class="tabCon selectdOn">  
97 - <!--聊天区域-->  
98 - <div class="chat">  
99 - <div class="msg-border">  
100 - <div id="panel_message" class="msg clear">  
101 -  
102 - </div>  
103 - </div>  
104 - <div class="input-send clear">  
105 - <button id="btn_send" class="send" type="submit">发送</button>  
106 - <span id="face" class="face iconfont">&#xe602;</span>  
107 - <span id="bannedBtn" class="bannedBtn" title="全体禁言"></span>  
108 - <span id="fileImg" class="fileImgBtn iconfont" title="上传图片">&#xe6c5;  
109 - <input type="file" id="fileImgInput" class="fileImgInput"/></span>  
110 - </span>  
111 -  
112 - <!--监课音频推流控制-->  
113 - <div id="invisible_speak" class="invisible_speak">  
114 - <div class="invisible_speakBtn">  
115 - <img src="images/music/voice_close.png" alt="" id="invisible_speakBtnOpen" class="invisible_speakBtnOpen" title="开启音频">  
116 - <img src="images/music/voiceOpen.png" alt="" id="invisible_speakBtnClose" class="invisible_speakBtnClose" title="关闭音频"> 22 + <div class="header_seek">
  23 + <input type="text" class="header_seekInput">
  24 + <button class="header_seekBtn"><img src="" alt=""></button>
117 </div> 25 </div>
118 - <div class="invisible_speakVolume">  
119 - <div class="invisible_speakVolumeBg" id="invisible_speakVolumeBg"></div>  
120 - <div class="invisible_speakVolumePlanBox">  
121 - <div class="invisible_speakVolumePlan" id="invisible_speakVolumePlan"></div>  
122 - </div>  
123 - </div>  
124 - </div>  
125 -  
126 - <div class="input-face">  
127 - <input id="txt_message"  
128 - type="text"/>  
129 - </div>  
130 - </div>  
131 - </div>  
132 - <!--表情列表-->  
133 - <div id="facelist" class="swiper-container" style="display: none">  
134 - <div class="inner-slide" id="inner-slide">  
135 - <div id="slide1" class="swiper-slide">  
136 - <ul>  
137 - <li><img src="images/face/aimu.png" data-type="aimu">  
138 - </li>  
139 - <li><img src="images/face/daxiao.png" data-type="daxiao">  
140 - </li>  
141 - <li><img src="images/face/huaixiao.png" data-type="huaixiao">  
142 - </li>  
143 - <li><img src="images/face/liuhan.png" data-type="liuhan">  
144 - </li>  
145 - <li><img src="images/face/shuijiao.png" data-type="shuijiao">  
146 - </li>  
147 - <li><img src="images/face/yiwen.png" data-type="yiwen">  
148 - </li>  
149 - <li><img src="images/face/aoman.png" data-type="aoman">  
150 - </li>  
151 - <li><img src="images/face/jiew.png" data-type="jiew">  
152 - </li>  
153 - <li><img src="images/face/liulei.png" data-type="liulei">  
154 - </li>  
155 - <li><img src="images/face/sun.png" data-type="sun">  
156 - </li>  
157 - <li><img src="images/face/youhh.png" data-type="youhh">  
158 - </li>  
159 - <li><img src="images/face/baiyan.png" data-type="baiyan">  
160 - </li>  
161 - <li><img src="images/face/fadai.png" data-type="fadai">  
162 - </li>  
163 - <li><img src="images/face/jingkong.png" data-type="jingkong">  
164 - </li>  
165 - <li><img src="images/face/meiyan.png" data-type="meiyan">  
166 - </li>  
167 - <li><img src="images/face/tiaoxie.png" data-type="tiaoxie">  
168 - </li>  
169 - <li><img src="images/face/yue.png" data-type="yue">  
170 - </li>  
171 - <li><img src="images/face/baoquan.png" data-type="baoquan">  
172 - </li>  
173 - <li><img src="images/face/fanu.png" data-type="fanu">  
174 - </li>  
175 - <li><img src="images/face/jingya.png" data-type="jingya">  
176 - </li>  
177 - <li><img src="images/face/mojing.png" data-type="mojing">  
178 - </li>  
179 - <li><img src="images/face/touxiao.png" data-type="touxiao">  
180 - </li>  
181 - <li><img src="images/face/yumen.png" data-type="yumen">  
182 - </li>  
183 - <li><img src="images/face/bishi.png" data-type="bishi">  
184 - </li>  
185 - <li><img src="images/face/fendou.png" data-type="fendou">  
186 - </li>  
187 - <li><img src="images/face/kafei.png" data-type="kafei">  
188 - </li>  
189 - <li><img src="images/face/piezui.png" data-type="piezui">  
190 - </li>  
191 - <li><img src="images/face/tu.png" data-type="tu">  
192 - </li>  
193 - <li><img src="images/face/yun.png" data-type="yun">  
194 - </li>  
195 - <li><img src="images/face/bizui.png" data-type="bizui">  
196 - </li>  
197 - <li><img src="images/face/ganga.png" data-type="ganga">  
198 - </li>  
199 - <li><img src="images/face/kelian.png" data-type="kelian">  
200 - </li>  
201 - </ul>  
202 - </div>  
203 - <div id="slide2" class="swiper-slide">  
204 - <ul>  
205 - <li><img src="images/face/pijiu.png" data-type="pijiu">  
206 - </li>  
207 - <li><img src="images/face/weiqu.png" data-type="weiqu">  
208 - </li>  
209 - <li><img src="images/face/zaijian.png" data-type="zaijian">  
210 - </li>  
211 - <li><img src="images/face/cahan.png" data-type="cahan">  
212 - </li>  
213 - <li><img src="images/face/guai.png" data-type="guai">  
214 - </li>  
215 - <li><img src="images/face/koubi.png" data-type="koubi">  
216 - </li>  
217 - <li><img src="images/face/qiang.png" data-type="qiang">  
218 - </li>  
219 - <li><img src="images/face/weixiao.png" data-type="weixiao">  
220 - </li>  
221 - <li><img src="images/face/zancheng.png" data-type="zancheng">  
222 - </li>  
223 - <li><img src="images/face/cool.png" data-type="cool">  
224 - </li>  
225 - <li><img src="images/face/guzhang.png" data-type="guzhang">  
226 - </li>  
227 - <li><img src="images/face/kuaikl.png" data-type="kuaikl">  
228 - </li>  
229 - <li><img src="images/face/qinqin.png" data-type="qinqin">  
230 - </li>  
231 - <li><img src="images/face/woshou.png" data-type="woshou">  
232 - </li>  
233 - <li><img src="images/face/zhemo.png" data-type="zhemo">  
234 - </li>  
235 - <li><img src="images/face/dabing.png" data-type="dabing">  
236 - </li>  
237 - <li><img src="images/face/hanxiao.png" data-type="hanxiao">  
238 - </li>  
239 - <li><img src="images/face/kulou.png" data-type="kulou">  
240 - </li>  
241 - <li><img src="images/face/qiu.png" data-type="qiu">  
242 - </li>  
243 - <li><img src="images/face/xigua.png" data-type="xigua">  
244 - </li>  
245 - <li><img src="images/face/zhouma.png" data-type="zhouma">  
246 - </li>  
247 - <li><img src="images/face/daku.png" data-type="daku">  
248 - </li>  
249 - <li><img src="images/face/haqi.png" data-type="haqi">  
250 - </li>  
251 - <li><img src="images/face/kun.png" data-type="kun">  
252 - </li>  
253 - <li><img src="images/face/ruo.png" data-type="ruo">  
254 - </li>  
255 - <li><img src="images/face/xin.png" data-type="xin">  
256 - </li>  
257 - <li><img src="images/face/zuohh.png" data-type="zuohh">  
258 - </li>  
259 - <li><img src="images/face/dangao.png" data-type="dangao">  
260 - </li>  
261 - <li><img src="images/face/hua.png" data-type="hua">  
262 - </li>  
263 - <li><img src="images/face/lianhong.png" data-type="lianhong">  
264 - </li>  
265 - <li><img src="images/face/shuai.png" data-type="shuai">  
266 - </li>  
267 - <li><img src="images/face/yinxian.png" data-type="yinxian"> 26 + <ul class="DownloadLoginBox">
  27 + <li class="androidDownload">
  28 + 移动端下载
268 </li> 29 </li>
  30 + <li class="userNews iconfont">&#xe608;</li>
  31 + <li class="userLoginBtn" id="homeUserLoginBtn"></li>
269 </ul> 32 </ul>
270 </div> 33 </div>
271 </div> 34 </div>
272 - <ul class="tiplist" id="tiplist">  
273 - <li class="bg"></li>  
274 - <li></li> 35 + <!--图片轮播-->
  36 + <div class="slideshow" id="slideshow">
  37 + <ul class="motionMapBox" id="motionMapBox">
  38 + <li class="slidesMap"><img class="slidesImg" src="images/xdybg.png" alt=""></li>
  39 + <li class="slidesMap"><img class="slidesImg" src="images/bg.jpg" alt=""></li>
  40 + <li class="slidesMap"><img class="slidesImg" src="images/xdybg.png" alt=""></li>
  41 + <li class="slidesMap"><img class="slidesImg" src="images/bg.jpg" alt=""></li>
  42 + <li class="slidesMap"><img class="slidesImg" src="images/xdybg.png" alt=""></li>
275 </ul> 43 </ul>
276 -  
277 - </div>  
278 - </div>  
279 - </div>  
280 - <!--箭头-->  
281 - <div class="arrowsBtn">  
282 - <div class="arrowsLeft"><p></p></div>  
283 - <div class="arrowsRight"><p></p></div>  
284 - </div>  
285 - </div>  
286 - <!--1V1视频布局-->  
287 - <div class="media1v1BoxView" id="media1v1BoxView">  
288 - <div class="media1v1BoxView_flash" id="media1v1BoxView_flash">  
289 - <!--<div id="media1v1BoxView_flash_content"></div>-->  
290 - </div>  
291 - <div class="media1v1BoxView_h5" id="media1v1BoxView_h5">  
292 - <div class="media1v1BoxView_top" id="media1v1BoxView_top">  
293 - <video id="media1v1BoxView_top_video" width="100%" height="100%"></video>  
294 - </div>  
295 - <div class="media1v1BoxView_bottom" id="media1v1BoxView_bottom">  
296 - <video id="media1v1BoxView_bottom_video" width="100%" height="100%"></video>  
297 - </div>  
298 - </div>  
299 - </div>  
300 - <div class="leftWarp">  
301 - <div class="leftWarp_top">  
302 - <!--左边栏-->  
303 - <div class="left">  
304 - <!--文档-->  
305 - <div class="docListOut docListOut1" id="docUploadOut" title="上传文档">  
306 - <span class="iconfont docList">&#xe648;<input type="file" id="file"/>  
307 - </span>  
308 - </div>  
309 -  
310 - <div class="docListOut" id="docListOut" title="选择文档">  
311 - <span class="iconfont docList">&#xe620;</span> 44 + <ol class="dots" id="dots">
  45 + </ol>
  46 + </div>
  47 + <div class="themeBox" id="themeBox">
  48 + <!--首页-->
  49 + <div class="box" id="defaultBox">
  50 + <div class="curriculumBox" id="liveListBox">
  51 + <div class="curriculumHandler">
  52 + <p class="curriculumTitle" id="liveCoursesTitle">最新直播课程</p>
  53 + <p class="curriculumMove">更多</p>
  54 + <img class="curriculumIcon" src="images/more.png" alt="">
  55 + </div>
  56 + <div class="curriculumListBox" id="liveList">
  57 + <div class="curriculumList">
  58 + <img class="curriculumListImg" src="" alt="">
  59 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  60 + <p class="curriculumListInfo">
  61 + <span class="curriculumListTime">今天 09:00-21:30</span>
  62 + <span class="curriculumListNum">3200人已预约</span>
  63 + </p>
312 </div> 64 </div>
313 -  
314 - <!--屏幕共享-->  
315 - <div class="docUploadForbid"></div>  
316 - <div class="docListOut" id="screenSharingOut" title="屏幕共享">  
317 - <span class="iconfont docList">&#xe66e;</span> 65 + <div class="curriculumList">
  66 + <img class="curriculumListImg" src="" alt="">
  67 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  68 + <p class="curriculumListInfo">
  69 + <span class="curriculumListTime">今天 09:00-21:30</span>
  70 + <span class="curriculumListNum">3200人已预约</span>
  71 + </p>
318 </div> 72 </div>
319 -  
320 - <!--媒体共享-->  
321 - <div class="docListOut docUploadOut" id="mediaUpLoadOut" title="上传媒体文件">  
322 - <span class="iconfont docList">&#xe648;<input type="file" id="mediaFile"/>  
323 - </span> 73 + <div class="curriculumList">
  74 + <img class="curriculumListImg" src="" alt="">
  75 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  76 + <p class="curriculumListInfo">
  77 + <span class="curriculumListTime">今天 09:00-21:30</span>
  78 + <span class="curriculumListNum">3200人已预约</span>
  79 + </p>
324 </div> 80 </div>
325 - <div class="docListOut" id="mediaListOut" title="选择媒体文件">  
326 - <span class="iconfont docList">&#xe66f;</span> 81 + <div class="curriculumList">
  82 + <img class="curriculumListImg" src="" alt="">
  83 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  84 + <p class="curriculumListInfo">
  85 + <span class="curriculumListTime">今天 09:00-21:30</span>
  86 + <span class="curriculumListNum">3200人已预约</span>
  87 + </p>
327 </div> 88 </div>
328 -  
329 - <!--伴音-->  
330 - <div class="docListOut" id="musicUploadOut" title="上传音频">  
331 - <span class="iconfont docList">&#xe68b;</span>  
332 </div> 89 </div>
333 -  
334 - <!--控制左侧栏是否可点击的遮罩栏-->  
335 - <div class="leftBarEnabledMask" id="leftBarEnabledMask"></div>  
336 </div> 90 </div>
337 -  
338 - <div class="leftGap"></div>  
339 -  
340 - <!--<div class="rightGap"></div>-->  
341 -  
342 - <div class="fold">  
343 - <!--显示隐藏右侧按钮-->  
344 - <div id="expand" class="expand">></div>  
345 - <div id="collapse" class="collapse"></div> 91 + <div class="curriculumBox" id="lanclassListBox ">
  92 + <div class="curriculumHandler">
  93 + <p class="curriculumTitle" id="lessonsTitle">最新互动课程</p>
  94 + <p class="curriculumMove">更多</p>
  95 + <img class="curriculumIcon" src="images/more.png" alt="">
346 </div> 96 </div>
347 - <div class="middle">  
348 - <div class="docBox">  
349 -  
350 - <!--加载转圈-->  
351 - <div class="spinnerMasker">  
352 - <div class="exitSpinnerMasker">  
353 - <a href="javascript: void(0)" class="exitSpinnerMaskerA iconfont">&#xe638;</a>  
354 - </div>  
355 - <div class="spinnerMask"><div class="minspinner"></div></div>  
356 - <div class="spinnerHtml"></div>  
357 - <div class="spinner">  
358 - <div class="spinner-container container1">  
359 - <div class="circle1"></div>  
360 - <div class="circle2"></div>  
361 - <div class="circle3"></div>  
362 - <div class="circle4"></div> 97 + <div class="curriculumListBox" id="lanclassList">
  98 + <div class="curriculumList">
  99 + <img class="curriculumListImg" src="" alt="">
  100 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  101 + <p class="curriculumListInfo">
  102 + <span class="curriculumListTime">今天 09:00-21:30</span>
  103 + <span class="curriculumListNum">3200人已预约</span>
  104 + </p>
363 </div> 105 </div>
364 - <div class="spinner-container container2">  
365 - <div class="circle1"></div>  
366 - <div class="circle2"></div>  
367 - <div class="circle3"></div>  
368 - <div class="circle4"></div> 106 + <div class="curriculumList">
  107 + <img class="curriculumListImg" src="" alt="">
  108 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  109 + <p class="curriculumListInfo">
  110 + <span class="curriculumListTime">今天 09:00-21:30</span>
  111 + <span class="curriculumListNum">3200人已预约</span>
  112 + </p>
369 </div> 113 </div>
370 - <div class="spinner-container container3">  
371 - <div class="circle1"></div>  
372 - <div class="circle2"></div>  
373 - <div class="circle3"></div>  
374 - <div class="circle4"></div> 114 + <div class="curriculumList">
  115 + <img class="curriculumListImg" src="" alt="">
  116 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  117 + <p class="curriculumListInfo">
  118 + <span class="curriculumListTime">今天 09:00-21:30</span>
  119 + <span class="curriculumListNum">3200人已预约</span>
  120 + </p>
375 </div> 121 </div>
  122 + <div class="curriculumList">
  123 + <img class="curriculumListImg" src="" alt="">
  124 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  125 + <p class="curriculumListInfo">
  126 + <span class="curriculumListTime">今天 09:00-21:30</span>
  127 + <span class="curriculumListNum">3200人已预约</span>
  128 + </p>
376 </div> 129 </div>
377 </div> 130 </div>
378 -  
379 - <!--文档-动态ppt-白板标注-->  
380 - <div class="docGroup" style="position: relative;background-color:rgb(50,50,50)" >  
381 - <iframe id="framePPT" class="framePPT" name="frame" src="" scrolling="no" frameborder="no"></iframe>  
382 - <img class="docView" width="100%"/>  
383 - <canvas id="canvasContent" class="canvasContent"></canvas>  
384 - <div class="laserBoard"><div class="laserRed"></div></div>  
385 </div> 131 </div>
386 -  
387 - <!--屏幕共享-->  
388 - <div class="screenSharingGroup">  
389 - <div class="sharingMsgBox">  
390 - <!--<div class="sharingMsg"></div>-->  
391 - <img class="shareBackdrop" src="images/img.png" alt="">  
392 - <div id="opening" class="sharingMsg">正在开启</div>  
393 - <div id="download" class="sharingMsg sharingMsg1">请先下载最新版插件</div>  
394 - <div id="downloading" class="sharingMsg">正在下载中...</div>  
395 - <div id="stopShare" class="sharingMsg sharingMsg2">终止共享</div>  
396 - <div class="downloadCancel">取消</div>  
397 - 132 + <div class="curriculumBox curriculumBox1" id="teacherIntroBox">
  133 + <div class="curriculumHandler">
  134 + <p class="curriculumTitle">推荐老师</p>
  135 + <p class="curriculumMove">更多</p>
  136 + <img class="curriculumIcon" src="images/more.png" alt="">
398 </div> 137 </div>
399 - <div class="screenMediaShareBox" style="position: absolute;width:100%;height: 100%; display: none">  
400 - <div id="screenMediaShare"></div> 138 + <div class="curriculumListBox" id="teacherIntro">
  139 + <div class="curriculumList">
  140 + <img class="curriculumListImg" src="" alt="">
  141 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  142 + <p class="curriculumListInfo">
  143 + <span class="curriculumListTime">今天 09:00-21:30</span>
  144 + <span class="curriculumListNum">3200人已预约</span>
  145 + </p>
401 </div> 146 </div>
402 - <div class="h5ScreenShareBox" style="position: absolute;width:100%;height: 100%; display: none">  
403 - <video id="h5ScreenShare" width="100%" height="100%"></video> 147 + <div class="curriculumList">
  148 + <img class="curriculumListImg" src="" alt="">
  149 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  150 + <p class="curriculumListInfo">
  151 + <span class="curriculumListTime">今天 09:00-21:30</span>
  152 + <span class="curriculumListNum">3200人已预约</span>
  153 + </p>
404 </div> 154 </div>
  155 + <div class="curriculumList">
  156 + <img class="curriculumListImg" src="" alt="">
  157 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  158 + <p class="curriculumListInfo">
  159 + <span class="curriculumListTime">今天 09:00-21:30</span>
  160 + <span class="curriculumListNum">3200人已预约</span>
  161 + </p>
405 </div> 162 </div>
406 -  
407 - <!--媒体共享-->  
408 - <div class="mediaShareGroup" id="mediaShareGroup">  
409 - <div class="h5MediaShareBox" style="position: absolute;width:100%;height: 100%; display: none">  
410 - <video id="h5MediaShare" width="100%" height="100%" autoplay="autoplay" ></video> 163 + <div class="curriculumList">
  164 + <img class="curriculumListImg" src="" alt="">
  165 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  166 + <p class="curriculumListInfo">
  167 + <span class="curriculumListTime">今天 09:00-21:30</span>
  168 + <span class="curriculumListNum">3200人已预约</span>
  169 + </p>
411 </div> 170 </div>
412 - <!--媒体播放控制条-->  
413 - <div class="h5MediaShareControls" id="h5MediaShareControls">  
414 - <div class="mediaShareProgressBtn">  
415 - <span class="mediaShareProgressPlay" id="mediaShareProgressPlay" style="display: none;"></span>  
416 - <span class="mediaShareProgressPause" id="mediaShareProgressPause"></span>  
417 </div> 171 </div>
418 - <div class="mediaSharePlayProgressBox">  
419 - <span class="mediaShare_bg" id="mediaShareProgress_bg"></span>  
420 - <span class="mediaShare_color" id="mediaShareProgress_color" ></span>  
421 - <span class="mediaShare_btn" id="mediaShareProgress_btn"></span>  
422 </div> 172 </div>
423 -  
424 - <div class="mediaShareTimestamp" id="mediaShareTimestamp">  
425 - 00:00/00:00  
426 </div> 173 </div>
427 -  
428 - <div class="mediaShareProgressVolBtn">  
429 - <span class="mediaVolumePlay" id="mediaShareVolumePlay"></span> 174 + <!--课堂分类列表-->
  175 + <div class="classifyListBox" id="classifyListBox">
  176 + <div class="classifyListTitle" id="classifyListTitle">最新直播课程</div>
  177 + <div class="classifyListContent" id="classifyListContent">
  178 + <!--<div class="classifyList">
  179 + <img class="curriculumListImg" src="" alt="">
  180 + <p class="curriculumListTit">初一英语阅读理解习题课</p>
  181 + <p class="curriculumListInfo">
  182 + <span class="curriculumListTime">今天 09:00-21:30</span>
  183 + <span class="curriculumListNum">3200人已预约</span>
  184 + </p>
  185 + </div>-->
430 </div> 186 </div>
431 - <div class="mediaSharePlayProgressVoiceBox">  
432 - <span class="mediaShareVoice_bg" id="mediaShareVoice_bg"></span>  
433 - <span class="mediaShareVoice_color" id="mediaShareVoice_color"></span>  
434 - <span class="mediaShareVoice_btn" id="mediaShareVoice_btn"></span>  
435 </div> 187 </div>
  188 + <!--互动课堂详情-->
  189 + <div class="lanclassBox" style="display: none">
  190 + <div class="lanclassContent">
  191 + <img class="lanclassContentCover" src="" alt="">
  192 + <div class="lanclassContentCenter">
  193 + <div class="lanclassContentTitle">
  194 + 初一语文阅读理解习题课
436 </div> 195 </div>
437 - <!--媒体共享区域的遮罩,不是老师的时候这个区域不可点击,需要遮罩盖住-->  
438 - <div class="mediaShareBoxMask" id="mediaShareBoxMask" style="position: absolute;width:100%;height: 100%;"></div> 196 + <div class="lanclassContentInfo">
  197 + <img class="lanclassContentInfoPortrait" id="lanclassContentInfoPortrait" src="images/collect.png" alt="">
  198 + <span class="lanclassContentInfoName" id="lanclassContentInfoName">张媛媛</span>
439 </div> 199 </div>
  200 + <div class="lanclassContentInfoTime">
  201 + <span class="lanclassContentInfoTimeStart" lanclassContentInfoTimeStart>开始时间:2017-08-01 13:00:00</span>
  202 + <span class="lanclassContentInfoTimeEnd" lanclassContentInfoTimeEnd>结束时间:2017-08-01 13:00:00</span>
440 </div> 203 </div>
441 - <!--伴音-->  
442 - <div class="musicShareGroup" id="musicShareGroup">  
443 - <div class="musicShareNameBox">  
444 - <span class="musicShareName" id="musicShareName">seasons in the sun</span> 204 + <div class="lanclassContentApply" id="lanclassContentApply">我要报名</div>
445 </div> 205 </div>
446 - <span class="closeMusicClose" id="closeMusicClose"></span>  
447 - <div class="musicSharePlayBox">  
448 - <div class="musicShareProgressBtn">  
449 - <span class="musicShareProgressPlay" id="musicShareProgressPlay"></span>  
450 - <span class="musicShareProgressPause" id="musicShareProgressPause"></span> 206 + <div class="lanclassContentRight">
  207 + <div class="thirdPartyIconBox">
  208 + <span id="weixinIcon" class="thirdPartyIcon weixinIcon iconfont">&#xe608;</span>
  209 + <span id="qqIcon" class="thirdPartyIcon qqIcon iconfont">&#xe608;</span>
  210 + <span id="weiboIcon" class="thirdPartyIcon weiboIcon iconfont">&#xe608;</span>
451 </div> 211 </div>
452 - <div class="musicSharePlayProgressBox">  
453 - <span class="musicShare_bg" id="musicShareProgress_bg"></span>  
454 - <span class="musicShare_color" id="musicShareProgress_color"></span>  
455 - <span class="musicShare_btn" id="musicShareProgress_btn"></span> 212 + <div class="collectBox" id="collectYes">
  213 + <img class="collectIcon" id="collectYesIcon" src="images/collect.png" alt="">
  214 + <span class="collectText">已收藏</span>
456 </div> 215 </div>
457 - <div class="musicTimeProgress">  
458 - <span class="musicPresentTime" id="musicPresentTime">0.00</span>  
459 - <span>/</span>  
460 - <span class="musicPresentTime" id="musicSumTime">0.00</span> 216 + <div class="collectBox" id="collectNo">
  217 + <img class="collectIcon" id="collectNoIcon" src="images/not-collect.png" alt="">
  218 + <span class="collectText">未收藏</span>
461 </div> 219 </div>
462 </div> 220 </div>
463 - <div class="musicSharePlayBox">  
464 - <div class="musicShareProgressBtn">  
465 - <span class="musicVolumePlay" id="musicShareVolumePlay"></span>  
466 - <span class="musicVolumePause" id="musicShareVolumePause"></span>  
467 </div> 221 </div>
468 - <div class="musicSharePlayProgressBox">  
469 - <span class="musicShare_bg" id="musicShareVoice_bg"></span>  
470 - <span class="musicShare_color" id="musicShareVoice_color"></span>  
471 - <span class="musicShare_btn" id="musicShareVoice_btn"></span> 222 + <div class="lanclassContent" id="lanclassIntroduce">
  223 + <p class="lanclassIntroduceTitle">
  224 + 课程介绍
  225 + </p>
  226 + <p class="lanclassIntroduceContent">
  227 + 课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
  228 + Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
  229 + tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
  230 + Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget.
  231 + </p>
472 </div> 232 </div>
473 - <div class="musicTimeProgress">  
474 - <span class="musicPresentTime" id="musicPlayPercentage">0%</span> 233 + <div class="lanclassContent teacherInfos" id="teacherInfos">
  234 + <div class="lanclassIntroduceTitle" id="teacherInfoTitle">
  235 + 老师简介
475 </div> 236 </div>
  237 + <div class="teacherInfoData">
  238 + <span class="teacherInfoName">张媛媛</span>
  239 + <span class="teacherInfoSchool">北京外国语学院</span>
476 </div> 240 </div>
477 - <div class="musicShareBox" style="position: absolute;width:100%;height: 100%; display: none">  
478 - <div id="musicShare"></div> 241 + <div class="lanclassIntroduceContent" id="teacherInfoContent">
  242 + 课程介绍Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet.
  243 + Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar
  244 + tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
  245 + Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus
479 </div> 246 </div>
480 - <div class="h5MusicShareBox" style="position: absolute;width:100%;height: 100%; display: none">  
481 - <!--<video id="h5MusicShare" width="100%" height="100%" autoplay="autoplay"></video>-->  
482 - <audio class="h5Music" id="h5Music" controls="controls" style="position:absolute;z-index:10;top:0;left: 0;height: 100px;" autoplay="autoplay"></audio>  
483 </div> 247 </div>
484 </div> 248 </div>
485 -  
486 - <!--折叠展开画板-->  
487 - <div class="foldDrawToolOut">  
488 - <span class="foldDrawTool">  
489 - <div class="arrowTop"></div>  
490 - <div class="arrowBottom"></div>  
491 - </span>  
492 </div> 249 </div>
493 - <div class="drawTool" style="display: block">  
494 - <li id="showColor" class="brushInfo showColor normal" title="选择颜色">  
495 - <!--颜色板-->  
496 - <ul class="toolColor">  
497 - <!--红色-->  
498 - <li id="redColor" class="redColor toolColorList" title="#b8242a" value="#b8242a"></li>  
499 - <!--蓝色-->  
500 - <li id="blueColor" class="blueColor toolColorList" title="#0071bc" value="#0071bc"></li>  
501 - <!--紫色-->  
502 - <li id="purpleColor" class="purpleColor toolColorList" title="#6a0db2" value="#6a0db2"></li>  
503 - <!--黄色-->  
504 - <li id="yellowColor" class="yellowColor toolColorList" title="#fae81b" value="#fae81b"></li> 250 + <div class="footerBg">
  251 + <div class="footer">
  252 + <div class="footerLeft">
  253 + <ul class="footerLeftList">
  254 + <li class="footerLeftListMsg">企业合作</li>
  255 + <li class="footerLeftListMsg">人才招聘</li>
  256 + <li class="footerLeftListMsg">联系我们</li>
  257 + <li class="footerLeftListMsg">讲师招募</li>
  258 + <li class="footerLeftListMsg">常见问题</li>
  259 + <li class="footerLeftListMsg">意见反馈</li>
  260 + <li class="footerLeftListMsg">友情链接</li>
505 </ul> 261 </ul>
506 - </li>  
507 - <li id="showForm" class="brushInfo showForm " title="选择形状">  
508 - <!--颜色板-->  
509 - <ul class="toolForm">  
510 - <!--直线-->  
511 - <li id="straightBrush" class="straightBrush toolColorList" title="直线" value="#0071bc"></li>  
512 - <!--圆形-->  
513 - <li id="circleBrush" class="circleBrush toolColorList" title="圆形" value="#fae81b"></li>  
514 - <!--曲线-->  
515 - <li id="curveBrush" class="curveBrush toolColorList" title="曲线" value="#b8242a"></li>  
516 - <!--正方形-->  
517 - <li id="squareBrush" class="squareBrush toolColorList" title="正方形" value="#6a0db2"></li>  
518 - <!--自定义-->  
519 - <li id="customBrush" class="customBrush toolColorList" title="自定义" value="#6a0db2"></li>  
520 -  
521 - </ul>  
522 - </li>  
523 - <li class="brushInfo pencil active" title="铅笔"></li>  
524 - <li class="brushInfo rescind normal" title="撤销上一步"></li>  
525 - <li class="brushInfo laserPen normal" title="激光笔"></li>  
526 - <li class="brushInfo clearContent normal" title="删除"></li>  
527 - </div>  
528 -  
529 - <div class="botTurn" id="botTurn">  
530 - <div id="docControlBar">  
531 - <li class="turn" style=""><p class="go">GO</p></li>  
532 - <li class="pageNo" style=""><input type="text" id="pageNo"></li>  
533 - <li class="next-page "><a id="nextPage" class="nextPage" href="javascript:void(0)"><div class="arrowRight"></div></a></li>  
534 - <li class="total-page"><span id="totalPageNum">0</span></li>  
535 - <li class="bias" id="bias">/</li>  
536 - <li class="cur-page" id="curPage"><span id="currentPageNum">0</span></li>  
537 - <li class="prev"><a id="prevPage" class="prevPage" href="javascript:void(0)"><div class="arrowLeft"></div></a></li>  
538 - <li id="pptNextStep" class="pptNextStep iconfont" title="下一步动画">&#xe66d;</li>  
539 - <li id="pptPrevStep" class="pptPrevStep iconfont" title="上一步动画">&#xe66c;</li>  
540 - <li id="fitHeight" class="fitHeight setAdaptWH iconfont" title="自适应高" >&#xe696;</li>  
541 - <li id="fitWidth" class="fitWidth setAdaptWH iconfont" title="自适应宽">&#xe697;</li>  
542 - <li id="fitNormal" class="fitNormal setAdaptWH iconfont" title="显示全部">&#xe695;</li>  
543 - </div>  
544 - <li class="version" id="pcVersion"></li>  
545 -  
546 - <!--控制底部栏是否可点击的遮罩栏-->  
547 - <div class="bottomBarEnabledMask" id="bottomBarEnabledMask"></div>  
548 -  
549 - </div>  
550 - </div>  
551 - </div>  
552 - <div class="botVideoWindow" id="botVideoWindow">  
553 - <div class="botH5VideoBox" id="botH5VideoBox">  
554 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_1"></video>  
555 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_2"></video>  
556 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_3"></video>  
557 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_4"></video>  
558 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_5"></video>  
559 - <video class="botH5VideoSingleBox" id="botH5VideoSingleBox_6"></video>  
560 - </div>  
561 - <div class="botFlashVideoBox" id="botFlashVideoBox"></div>  
562 - </div>  
563 - <span class="nextStep styleStep" id="nextStep"></span>  
564 - <span class="prevStep styleStep" id="prevStep"></span>  
565 - </div>  
566 - <!--文档上传的列表-->  
567 - <div class="listModal" id="docModalList">  
568 - <div class="listHeadline">  
569 - <div class="listHeadlineTitle" id="docListTitle">文档列表</div>  
570 - <a href="javascript: void(0)" id="closeDocList" class="iconfont">&#xe638;</a>  
571 - </div>  
572 -  
573 - <div class="mediaFileContentBox">  
574 - <div class="mediaFileContentMenu">  
575 - <span class="mediaFileContentTxt">文件列表</span>  
576 - <span class="mediaFileContentMenuSpan ">  
577 - <lable class="mediaFileContentMenuLableIcon iconfont">&#xe672;</lable>  
578 - <label class="mediaFileContentMenuLableTxt">上传</label>  
579 - <input type="file" id="docFileBtn"/></span>  
580 - </div>  
581 - <div id="docFileContent" class="mediaFileContent" >  
582 - </div>  
583 - </div>  
584 - </div>  
585 -  
586 - <!--媒体共享上传的列表-->  
587 - <div class="listModal" id="mediaShareModal">  
588 - <div class="listHeadline">  
589 - <div class="listHeadlineTitle" id="mediaListTitle">媒体文件列表</div>  
590 - <a href="javascript: void(0)" id="closeMediaList" class="iconfont">&#xe638;</a>  
591 - </div>  
592 - <div class="mediaFileContentBox">  
593 - <div class="mediaFileContentMenu">  
594 - <span class="mediaFileContentTxt">文件列表</span>  
595 - <span class="mediaFileContentMenuSpan ">  
596 - <lable class="mediaFileContentMenuLableIcon iconfont">&#xe672;</lable>  
597 - <label class="mediaFileContentMenuLableTxt">上传</label>  
598 - <input type="file" id="mediaFileBtn"/></span>  
599 - </div>  
600 - <div id="mediaFileContent" class="mediaFileContent" >  
601 - </div>  
602 - </div>  
603 - </div>  
604 -  
605 - <!--伴音上传的列表-->  
606 - <div class="listModal" id="musicShareModal">  
607 - <div class="listHeadline">  
608 - <div class="listHeadlineTitle" id="musicListTitle">音频文件列表</div>  
609 - <a href="javascript: void(0)" id="closeMusicList" class="iconfont">&#xe638;</a>  
610 - </div>  
611 - <div class="mediaFileContentBox">  
612 - <div class="mediaFileContentMenu">  
613 - <span class="mediaFileContentTxt">文件列表</span>  
614 - <span class="mediaFileContentMenuSpan ">  
615 - <lable class="mediaFileContentMenuLableIcon iconfont">&#xe672;</lable>  
616 - <label class="mediaFileContentMenuLableTxt">上传</label>  
617 - <input type="file" id="musicFileBtn"/></span>  
618 - </div>  
619 - <div id="musicFileContent" class="mediaFileContent" >  
620 - </div>  
621 - </div> 262 + <p class="copyrightMsg">© 2010 - 2015 三芒世纪(北京)科技有限公司 版权所有 京ICP备12014300号-1</p>
622 </div> 263 </div>
  264 + <div class="footerRight">
623 265
624 - <!--帮助的弹出框-->  
625 - <div class="helpBox">  
626 - <div class="helpHeadline">  
627 - <div class="helpHeadlineTitle">帮助</div>  
628 - <a href="javascript: void(0)" class="iconfont">&#xe638;</a>  
629 </div> 266 </div>
630 - <div id="helpContent" class="helpContent" >  
631 </div> 267 </div>
632 </div> 268 </div>
633 -  
634 - <!--结束课堂弹出框-->  
635 - <!-- <div class="endClassBox">  
636 - <div class="endClassHeadline">  
637 - <div class="endClassHeadlineTitle">结束课堂</div>  
638 - <a href="javascript: void(0)" class="endClassA iconfont ">&#xe638;</a>  
639 - </div>  
640 - <div id="endClassContent" class="endClassContent" >  
641 - <p class="endClassText">确定要结束当前课堂吗?</p>  
642 - <button class="endClassEnsure">确定</button>  
643 - <button class="endClassCancel">取消</button>  
644 - </div>  
645 - </div>-->  
646 -<!-- &lt;!&ndash;结束屏幕共享弹出框&ndash;&gt;  
647 - <div class="endShareBox">  
648 - <div class="endShareHeadline">  
649 - <div class="endShareHeadlineTitle">屏幕共享</div>  
650 - <a href="javascript: void(0)" class="endShareA iconfont ">&#xe638;</a>  
651 - </div>  
652 - <div id="endShareContent" class="endShareContent" >  
653 - <p class="endShareText">确定要结束屏幕共享吗?</p>  
654 - <button class="endShareEnsure">确定</button>  
655 - <button class="endShareCancel">取消</button>  
656 - </div>  
657 - </div>-->  
658 - <!-- &lt;!&ndash;退出弹出框&ndash;&gt;  
659 - <div class="exitClassBox">  
660 - <div class="exitClassHeadline">  
661 - <div class="exitClassHeadlineTitle">退出</div>  
662 - <a href="javascript: void(0)" class="exitClassA iconfont">&#xe638;</a>  
663 - </div>  
664 - <div id="exitClassContent" class="exitClassContent" >  
665 - <p class="exitClassText">确定要退出当前课堂吗?</p>  
666 - <button class="exitClassEnsure">确定</button>  
667 - <button class="exitClassCancel">取消</button>  
668 - </div>  
669 - </div>-->  
670 -  
671 - </div>  
672 - <!--遮罩层-->  
673 - <div class="masker"></div>  
674 - <!--录制回放控制条-->  
675 - <div class="recordPlayControl"></div>  
676 - <!--登录-->  
677 - <div class="loginBg">  
678 - <!-- <div class="loginImg"></div>  
679 - <div class="login_star">  
680 - <p class="login_star1 star"></p>  
681 - <p class="login_star2 star"></p>  
682 - <p class="login_star3 star"></p>  
683 - <p class="login_star4 star"></p>  
684 - <p class="login_star5 star"></p>  
685 - <p class="login_star6 star"></p>  
686 - <p class="login_star7 star"></p>  
687 - <p class="login_star8 star"></p>  
688 - <p class="login_star9 star"></p>  
689 - <p class="login_star10 star"></p>  
690 - <p class="login_star11 star"></p>  
691 - <p class="login_star12 star"></p>  
692 - </div>-->  
693 - <div class="loginContentBox">  
694 - <ul class="loginContent">  
695 - <li class="loginContentImg"></li>  
696 - <li class="userNameLi">  
697 - <input class="userNameInput" type="text" placeholder="请输入用户名" maxlength="20" 269 +</div>
  270 +<!--注册-->
  271 +<div class="userSignBox" id="userSignBox" style="display: none">
  272 + <div class="usersign" id="usersign">
  273 + <a href="javascript: void(0)" id="usersignA" class="usersignA iconfont">&#xe638;</a>
  274 + <ul>
  275 + <li class="usersignTit">注册</li>
  276 + <li class="usersignLi">
  277 + <input id="signName" class="userNameInput usersignInput" type="text" placeholder="填写用户名" maxlength="20"
698 onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"> 278 onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
699 </li> 279 </li>
700 - <li class="loginUser">  
701 - <p class="userTip"></p>  
702 - </li>  
703 - <li class="passWordLi">  
704 - <input class="passWordInput" type="password" placeholder="请输入密码"> 280 + <li class="usersignNameLi usersignLi">
  281 + <input id="signPhone" class="userPhoneInput usersignInput" type="text" placeholder="填写手机号" maxlength="20"
  282 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
  283 + <span class="requiredMsg">*</span>
705 </li> 284 </li>
706 - <li class="loginPassWord">  
707 - <p class="passWordTip"></p> 285 + <li class="usersignLi">
  286 + <input id="signMail" class="userMailInput usersignInput" type="text" placeholder="填写邮箱" maxlength="20"
  287 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
708 </li> 288 </li>
709 - <p class="errorTip"></p>  
710 - <li class="btnLoginLi">  
711 - <button id="btnLogin">登录</button> 289 + <li class="usersignNameLi usersignLi">
  290 + <input id="signPassWord" class="userPassWordInput usersignInput" type="text" placeholder="设置密码" maxlength="20"
  291 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
  292 + <span class="requiredMsg">*</span>
712 </li> 293 </li>
713 - </ul>  
714 - </div>  
715 -  
716 - <div class="bgLogin"></div>  
717 - </div>  
718 - <!--初始化参数-->  
719 - <div class="initParamsOut">  
720 - <!--<div class="loginImg"></div>-->  
721 - <div class="initParamsBox">  
722 - <ul class="initParams">  
723 - <li class="initParamsImg"></li>  
724 - <li class="initParamsClassId">  
725 - <input class="classId" type="text" placeholder="请输入课堂号"> 294 + <li class="userVerifyLi usersignLi">
  295 + <input id="securityCode" class="userVerifyLiInput usersignInput" type="text" placeholder="验证码" maxlength="5"
  296 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
  297 + <button class="userVerifyLiInputBtn">发送验证码</button>
726 </li> 298 </li>
727 - <li class="initParamsUserId">  
728 - <input class="userId" type="text" placeholder="请输入userId"> 299 + <li class="permitSign usersignLi">
  300 + <input id="permitSign" class="permitSignIcon" type="checkbox">
  301 + <label for="permitSign"></label>
  302 + <span class="permitSignMsg">我已阅读并接受用户协议</span>
729 </li> 303 </li>
730 - <li class="initParamsNull"></li>  
731 - <li class="initParamsRoleBtn">  
732 - <button class="ensureTeaBtn">老师</button>  
733 - <button class="ensureStuBtn">学生</button> 304 + <li class="btnUsersignLi usersignLi">
  305 + <button id="signBtn" class="btnUsersign">注册</button>
734 </li> 306 </li>
735 - <p class="errorTip"></p> 307 + <p class="loginBtnBox">
  308 + <span>已有账号,去</span>
  309 + <a id="skipLoginBtn" class="loginBtn" href="javascript: void(0)">登录</a>
  310 + </p>
736 </ul> 311 </ul>
737 </div> 312 </div>
738 - <div class="bgInit"></div>  
739 - </div>  
740 </div> 313 </div>
741 -  
742 -<div class="boxMask"></div>  
743 -<!--设置弹出框-->  
744 -<div id="H5settingBox" style="position: absolute;z-index:2100;width: 100%;height: 100%"></div>  
745 -<!--答题卡-->  
746 -<div class="answerAllBox">  
747 - <!--创建答题卡-->  
748 - <div class="themeBox">  
749 - <div class="themeHeadline">  
750 - <div class="themeHeadlineTitle">答题卡</div>  
751 - <a href="javascript: void(0)" class="themeHeadlineA iconfont ">&#xe638;</a>  
752 - </div>  
753 - <div id="themeContent" class="themeContent">  
754 - <div class="themeCount">  
755 - <h4 class="themeTit">卡片类型:</h4>  
756 - <div data-type="1" class="themeList themeTrends">  
757 - <ul class="themeTrendsUl" id="themeTrendsUlA">  
758 - <li class="themeTrendsLi">  
759 - <p></p>  
760 - <span>&times;</span>  
761 - </li>  
762 - <li class="themeTrendsLi">  
763 - <p></p>  
764 - <span>&times;</span>  
765 - </li>  
766 - <li class="themeTrendsLi">  
767 - <p></p>  
768 - <span>&times;</span>  
769 - </li>  
770 - <li class="themeTrendsLi">  
771 - <p></p>  
772 - <span>&times;</span>  
773 - </li>  
774 - <li class="themeAdd">  
775 - +  
776 - </li>  
777 - </ul>  
778 - <div class="dynamicRight">发布</div>  
779 - </div>  
780 - <div data-type="1" class="themeList themeTrends">  
781 - <ul class="themeTrendsUl" id="themeTrendsUlB">  
782 - <li class="themeTrendsLi">  
783 - <p>1</p>  
784 - <span>&times;</span>  
785 - </li>  
786 - <li class="themeTrendsLi">  
787 - <p>2</p>  
788 - <span>&times;</span>  
789 - </li>  
790 - <li class="themeTrendsLi">  
791 - <p>3</p>  
792 - <span>&times;</span>  
793 - </li>  
794 - <li class="themeTrendsLi">  
795 - <p>4</p>  
796 - <span>&times;</span>  
797 - </li>  
798 - <li class="themeAdd">  
799 - +  
800 - </li>  
801 - </ul>  
802 - <div class="dynamicRight">发布</div>  
803 - </div>  
804 - <div data-type="1" class="themeList themeTrends themeInput">  
805 - <ul class="themeTrendsUl" id="themeTrendsUlC">  
806 - <li class="themeTrendsLi">  
807 - <input type="text" class="themeVal" value="输入答案" maxlength="26">  
808 - <span>&times;</span>  
809 - </li>  
810 - <li class="themeTrendsLi">  
811 - <input type="text" class="themeVal" value="输入答案" maxlength="26">  
812 - <span>&times;</span>  
813 - </li>  
814 - <li class="themeTrendsLi">  
815 - <input type="text" class="themeVal" value="输入答案" maxlength="26">  
816 - <span>&times;</span>  
817 - </li>  
818 - <li class="themeAdd" id="themeAdd">  
819 - +  
820 - </li>  
821 - </ul>  
822 - <div class="dynamicRight dynamicRight1">发布</div>  
823 - </div>  
824 - <h6 class="themeTit1">  
825 - <b>*&nbsp;</b>  
826 - <p class="enterAnswer">填空题需要输入答案才能进行发布进行正确率统计</p>  
827 - </h6>  
828 - <div data-type="3" class="themeList themeListFixed clear"> 314 +<!--登录-->
  315 +<div class="userSignBox" id="userLoginBox" style="display: none" >
  316 + <div class="usersign userLogin" id="userLogin">
  317 + <a href="javascript: void(0)" id="userLoginA" class="usersignA iconfont">&#xe638;</a>
829 <ul> 318 <ul>
830 - <li>  
831 - <p class="gotIt">听明白了</p>  
832 - </li>  
833 - <li>  
834 - <p class="understand">没听明白</p>  
835 - </li>  
836 - </ul>  
837 - <div class="dynamicRight">发布</div>  
838 - </div>  
839 - <div data-type="3" class="themeList themeListFixed">  
840 - <ul>  
841 - <li>  
842 - <p class="yes"></p>  
843 - </li>  
844 - <li>  
845 - <p class="wrong"></p> 319 + <li class="usersignTit">登录</li>
  320 + <li class="usersignNameLi usersignLi">
  321 + <input id="loginName" class="usersignInput" type="text" placeholder="手机/用户名/邮箱" maxlength="20"
  322 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
846 </li> 323 </li>
847 - </ul>  
848 - <div class="dynamicRight">发布</div>  
849 - </div>  
850 - <div data-type="3" class="themeList themeListFixed">  
851 - <ul>  
852 - <li>  
853 - <p class="yup"></p> 324 + <li class="userPassWordLi usersignLi">
  325 + <input id="loginPassWord" class="userPassWordInput usersignInput" type="text" placeholder="密码" maxlength="20"
  326 + onkeyup="this.value=this.value.replace(/^ +| +$/g,'')">
854 </li> 327 </li>
855 - <li>  
856 - <p class="nothing"></p> 328 + <p class="forgetPasswordBtn" id="forgetPasswordBtn">
  329 + 忘记密码
  330 + </p>
  331 + <li class="btnUsersignLi usersignLi">
  332 + <button class="btnUsersign" id="userLoginBtn">提交</button>
857 </li> 333 </li>
858 - </ul>  
859 - <div class="dynamicRight">发布</div>  
860 - </div>  
861 - <div class="CountZero">  
862 - <span>答题计时:</span>  
863 - <div class="themeSelect">  
864 - <div class="show slelctShow">  
865 - <p class="themeShow"></p>  
866 - <i class="triangle"></i>  
867 - </div>  
868 - <ul class="themeUl">  
869 - <!--<li data-val="0" data-ind="0" class="active"></li>  
870 - <li data-val="30" data-ind="1"></li>  
871 - <li data-val="60" data-ind="3"></li>  
872 - <li data-val="120" data-ind="4"></li>  
873 - <li data-val="180" data-ind="5"></li>  
874 - <li data-val="300" data-ind="6"></li>-->  
875 - </ul>  
876 - </div>  
877 - </div>  
878 - </div>  
879 - </div>  
880 - </div>  
881 - <!--input错误提示框-->  
882 - <div class="inputErrerBox">  
883 - <div class="inputErrer">  
884 - <div class="inputErrerTitle">  
885 - <a href="javascript: void(0)" class="inputErrerA iconfont ">&#xe638;</a>  
886 - </div>  
887 - <div class="inputCount">  
888 - 填空题答案不能为空  
889 - </div>  
890 - </div>  
891 - </div>  
892 - <!--答题卡结果弹出框-->  
893 - <div class="resultBox">  
894 - <div class="resultHeadline">  
895 - <div class="resultHeadlineTitle">答题卡</div>  
896 - <a href="javascript: void(0)" class="resultHeadlineA iconfont ">&#xe638;</a>  
897 - </div>  
898 - <div id="resultContent" class="resultContent">  
899 - <div class="resultTit">  
900 - <p class="answerResult">答题结果:</p>  
901 - <p><span class="share">共有</span><span class="attendNum">0</span><span class="participation">人参与</span></p>  
902 - </div>  
903 - <div class="layerBox">  
904 - <!--<span>dong</span><span>lse</span>-->  
905 - </div>  
906 - <ul class="resultListUl">  
907 -  
908 - <!--<li class="resultList">  
909 - <b>A</b>  
910 - <span>0%</span>  
911 - <p></p>  
912 - </li>-->  
913 - </ul>  
914 - <div class="resultBtn">  
915 - <p class="resultConceal">隐藏</p>  
916 - <p class="resultTermination">终止</p>  
917 - </div>  
918 - </div>  
919 - </div>  
920 - <!--学生界面弹出框-->  
921 - <div class="answerStudentBox">  
922 - <div class="studentHeadline">  
923 - 答题卡  
924 - </div>  
925 - <div class="answerStudentContent">  
926 - <!--倒计时盒子-->  
927 - <div class="countdown">  
928 - <p id="answerCountDown"></p>  
929 - </div>  
930 - <ul class="resultValueUl">  
931 -  
932 - </ul>  
933 - <div class="choiceBtn">  
934 - <p class="referBtn">提交</p>  
935 - <p class="abandonBtn">放弃</p>  
936 - </div>  
937 - </div>  
938 - </div>  
939 -</div>  
940 -  
941 -<!--点名-->  
942 -<div class="signAllBox">  
943 - <div class="signBox">  
944 - <div class="signHeadline">  
945 - <div class="signHeadlineTitle">点名</div>  
946 - <a href="javascript: void(0)" class="signHeadlineA iconfont ">&#xe638;</a>  
947 - </div>  
948 - <div id="signContentA" class="signContent signContentA">  
949 - <div class="signSelect">  
950 - <div class="show signShowBox" id="signShowBox">  
951 - <p class="signShow"></p>  
952 - <i class="triangle"></i>  
953 - </div>  
954 - <ul class="signUl">  
955 - <!--<li data-val="0" data-ind="0" class="active">无</li>  
956 - <li data-val="5" data-ind="1">5秒</li>  
957 - <li data-val="10" data-ind="2">10秒</li>  
958 - <li data-val="15" data-ind="3">15秒</li>  
959 - <li data-val="30" data-ind="4">30秒</li>-->  
960 - </ul>  
961 - </div>  
962 - <div class="signBtn">  
963 - <p class="sponsorSign">发起点名</p>  
964 - </div>  
965 - </div>  
966 - <div id="signContentB" class="signContent signContentB">  
967 - <div class="turnListBox">  
968 - <ul class="turnList">  
969 - <!--<li class="turnListItem">  
970 - <p>dong</p>  
971 - <p>13:52:15</p>  
972 - </li>-->  
973 - </ul>  
974 - </div>  
975 - <div class="turnBox">  
976 - <p class="turnResult">  
977 - 出勤人数:<span class="turnLen">0</span> 334 + <p class="forgetPasswordBtn nowSignBtn" id="nowUserSign">
  335 + 新用户注册
978 </p> 336 </p>
979 - <p class="turnResultBtn">  
980 - 终止点名 337 + <li class="openidOauthBox">
  338 + <p class="openidOauth openidOauth2" id="openWeixin">
  339 + <span class="weChatLogin iconfont">&#xe638;</span>
  340 + <span class="openidOauthTit">微信</span>
981 </p> 341 </p>
982 - </div>  
983 - </div>  
984 - </div>  
985 - <!--学生端-->  
986 - <div class="signStudentBox">  
987 - <div class="signStudentHeadline">  
988 - <div class="signStudentHeadlineTitle">点名</div>  
989 - <a href="javascript: void(0)" class="signStudentHeadlineA iconfont ">&#xe638;</a>  
990 - </div>  
991 - <div id="signStudentContent" class="signStudentContent">  
992 - <div class="signCountdown" id="signCountdown"></div>  
993 - <p class="turnStudentBtn">  
994 - 签到 342 + <p class="openidOauth openidOauth1" id="openQQ">
  343 + <span class="weChatLogin iconfont">&#xe638;</span>
  344 + <span class="openidOauthTit">QQ</span>
995 </p> 345 </p>
996 -  
997 - </div>  
998 - </div>  
999 -</div>  
1000 -  
1001 -<!--显示图片大图-->  
1002 -<div id="magnifyBox" class="magnifyBox" style="position: absolute;width:100%;height:100%;z-index:502;display: none;"></div>  
1003 -<!--错误弹出框-->  
1004 -<div class="errorBox">  
1005 - <div class="errorHeadline">  
1006 - <div class="errorHeadlineTitle"></div>  
1007 - <a href="javascript: void(0)" class="errorA iconfont">&#xe638;</a>  
1008 - </div>  
1009 - <div id="errorContent" class="errorContent" >  
1010 - <p class="errorText"></p>  
1011 - <!--<button class="errorEnsure">确定</button>-->  
1012 - <!--<button class="errorCancel">取消</button>--> 346 + <p class="openidOauth" id="openWeibo">
  347 + <span class="weChatLogin iconfont">&#xe638;</span>
  348 + <span class="openidOauthTit">微博</span>
  349 + </p>
  350 + </li>
  351 + </ul>
1013 </div> 352 </div>
1014 </div> 353 </div>
1015 -  
1016 -<!--flash和浏览器和摄像头麦克风错误 Flash_explorer_facility-->  
1017 -<div class="errorHintBox">  
1018 - <div class="errorHint errorTestLive" data="">  
1019 - <div class="errorFlashHintHeadline">  
1020 - <div class="errorHintHeadlineTitle"></div>  
1021 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1022 - </div>  
1023 - <div>  
1024 - <p class="errorHintTit errorHintTit1" id="nowLiveVersion">现支持直播的浏览器版本:</p>  
1025 - <div class="errorFlashListLeft errorFlashListLeft1">  
1026 - <a href="http://chrome.360.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360jisu.png" alt=""><span class="speed360Recommend">360极速(推荐下载)</span></a>  
1027 - <a href="http://www.google.cn/chrome/business/browser/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconChrome.png" alt=""><span>Google Chrome</span></a>  
1028 - <a href="http://www.firefox.com.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconFirefox.png" alt=""><span>Firefox</span></a>  
1029 - <a href="https://support.microsoft.com/zh-cn/help/17621/internet-explorer-downloads" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconIE.png" alt=""><span>IE 10 </span></a>  
1030 - <a href="http://se.360.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360.png" alt=""><span class="security360">360安全</span></a>  
1031 - </div>  
1032 - <div class="errorFlashListLeft">  
1033 - <a href="http://ie.2345.cc/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon2345.png" alt=""><span>2345</span></a>  
1034 - <a href="http://browser.qq.com/?adtag=SEM7" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconQQ.png" alt=""><span>QQ</span></a>  
1035 - <a href="http://ie.sogou.com/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconSougou.png" alt=""><span class="sogouExplorer">搜狗高速</span></a>  
1036 - <a href="https://www.apple.com/cn/safari/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconSafari.png" alt=""><span>safari</span></a>  
1037 - </div>  
1038 -  
1039 - </div>  
1040 - </div>  
1041 - <div class="errorHint errorHint3 errorPlayback" data="">  
1042 - <div class="errorFlashHintHeadline">  
1043 - <div class="errorHintHeadlineTitle"></div>  
1044 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1045 - </div>  
1046 - <div >  
1047 - <p class="errorHintTit errorHintTit1" id="nowPlaybackVersion">现支持录制回放浏览器版本:</p>  
1048 - <div class="errorFlashListLeft errorFlashListLeft1">  
1049 - <a href="http://chrome.360.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360jisu.png" alt=""><span class="speed360Recommend">360极速(推荐下载)</span></a>  
1050 - <a href="http://www.google.cn/chrome/business/browser/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconChrome.png" alt=""><span>Google Chrome</span></a>  
1051 - <a href="http://www.firefox.com.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconFirefox.png" alt=""><span>Firefox</span></a>  
1052 - <a href="http://se.360.cn/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360.png" alt=""><span class="security360Only">360安全(仅9.1.0版本支持)</span></a>  
1053 - </div>  
1054 - <div class="errorFlashListLeft">  
1055 - <a href="http://browser.qq.com/?adtag=SEM7" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconQQ.png" alt=""><span>QQ</span></a>  
1056 - <a href="https://www.apple.com/cn/safari/" target=_blank class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconSafari.png" alt=""><span>safari</span></a>  
1057 - </div>  
1058 - </div>  
1059 - </div>  
1060 - <div class="errorHint errorHint1 notDetectionFlash" id="notDetectionFlash" data="">  
1061 - <div class="errorFlashHintHeadline">  
1062 - <div class="errorHintHeadlineTitle"></div>  
1063 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1064 - </div>  
1065 - <div class="errorSetFlashContent">  
1066 - <p class="errorDownloadFlashTit" id="flashMsgContent">您的flash可能被禁用或版本过低,请下载后重试</p>  
1067 - <p class="errorSetFlashHintB" id="flashDetailSteps">查看设置详细步骤</p>  
1068 - <a class="errorSetFlashHintA" id="flashUpdataVersions" href='https://get2.adobe.com/cn/flashplayer/' target="_blank">下载最新版本</a>  
1069 - </div>  
1070 - </div>  
1071 - <div class="errorHint errorHint2 notDetectionFlash_1" data="">  
1072 - <div class="errorFlashHintHeadline">  
1073 - <div class="errorHintHeadlineTitle"></div>  
1074 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1075 - </div>  
1076 - <div class="errorSetFlashContent">  
1077 - <p class="setFlashGuideTit" id="browserAreaSettings">根据您的浏览器区设置:</p>  
1078 - <div class="errorFlashListLeft">  
1079 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360jisu.png" alt=""><span class="speed360" id="e_speed360">360极速</span></p>  
1080 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconChrome.png" alt=""><span id="e_chrome">Google Chrome</span></p>  
1081 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconFirefox.png" alt=""><span id="e_firefox">Firefox</span></p>  
1082 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconIE.png" alt=""><span id="e_ie10">IE 10 </span></p>  
1083 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon360.png" alt=""><span class="security360" id="e_security360">360安全</span></p>  
1084 - </div>  
1085 - <div class="errorFlashListLeft">  
1086 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/icon2345.png" alt=""><span id="e_2345">2345</span></p>  
1087 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconQQ.png" alt=""><span id="e_qq">QQ</span></p>  
1088 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconSougou.png" alt=""><span class="sogouExplorer" id="e_sogou">搜狗高速</span></p>  
1089 - <p class="errorFlashHintList"><img class="errorFlashIcon" src="images/flashHint/iconSafari.png" alt=""><span id="e_safari">safari</span></p>  
1090 - </div> 354 +<!--删除弹框-->
  355 +<div class="userSignBox" id="removeHandlerBox" style="display: none;">
  356 + <div class="usersign removeHandler" id="removeHandler">
  357 + <a href="javascript: void(0)" id="removeHandlerA" class="usersignA iconfont">&#xe638;</a>
  358 + <div class="removeHandlerContent">
  359 + 确定删除吗?
1091 </div> 360 </div>
  361 + <div class="removeHandlerBtn">
  362 + <button class="removeConfirm" id="removeConfirm">确定</button>
  363 + <button class="removeCancel" id="removeCancel">取消</button>
1092 </div> 364 </div>
1093 - <div class="errorHint versionsFlash" data="">  
1094 - <div class="errorFlashHintHeadline">  
1095 - <div class="errorHintHeadlineTitle"></div>  
1096 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1097 </div> 365 </div>
1098 - <div class="errorHintContent">  
1099 - <p class="errorFlashTit" id="flashVersionsLow">您的flash版本过低,请</p>  
1100 - <a class="errorFlashLink" id="flashDownload" href='https://get2.adobe.com/cn/flashplayer/' target="_blank">下载</a>  
1101 - <p class="errorFlashTit" id="flashRetry">后重试</p>  
1102 -  
1103 - </div>  
1104 - </div>  
1105 - <div class="errorHint safariFlashBan" data="">  
1106 - <div class="errorFlashHintHeadline">  
1107 - <div class="errorHintHeadlineTitle"></div>  
1108 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1109 - </div>  
1110 - <div class="errorFlashContent">  
1111 - <p class="errorHintTit flashForbiddenMsg">您的flash可能被禁用,请开启后重试!</p>  
1112 - <img class="flashHintImg" src="images/flashHint/safari.png" alt="">  
1113 - </div>  
1114 - </div>  
1115 - <div class="errorHint QQOrChromeFlashBan" data="">  
1116 - <div class="errorFlashHintHeadline">  
1117 - <div class="errorHintHeadlineTitle"></div>  
1118 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1119 - </div>  
1120 - <div class="errorFlashContent">  
1121 - <p class="errorHintTit flashForbiddenMsg">您的flash可能被禁用,请开启后重试!</p>  
1122 - <img class="flashHintImg" src="images/flashHint/qq_chrome.png" alt="">  
1123 - </div>  
1124 - </div>  
1125 - <div class="errorHint sougouOr360jisuFlashBan" data="">  
1126 - <div class="errorFlashHintHeadline">  
1127 - <div class="errorHintHeadlineTitle"></div>  
1128 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1129 - </div>  
1130 - <div class="errorFlashContent">  
1131 - <p class="errorHintTit flashForbiddenMsg">您的flash可能被禁用,请开启后重试!</p>  
1132 - <img class="flashHintImg" src="images/flashHint/sougou_360jisu.png" alt="">  
1133 - </div>  
1134 - </div>  
1135 - <div class="errorHint setChromeFlash" data="">  
1136 - <div class="errorFlashHintHeadline">  
1137 - <div class="errorHintHeadlineTitle"></div>  
1138 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1139 - </div>  
1140 - <div class="errorSetFlashContent">  
1141 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1142 - <p class="errorSetFlashHintInfo">打开设置→开启网站运行flash</p>  
1143 - <a class="errorSetFlashHintA" href="images/flashHint/setChrome.png" target=_blank>点击查看详情步骤</a>  
1144 - </div>  
1145 - </div>  
1146 - <div class="errorHint setFirefoxFlash" data="">  
1147 - <div class="errorFlashHintHeadline">  
1148 - <div class="errorHintHeadlineTitle"></div>  
1149 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1150 - </div>  
1151 - <div class="errorSetFlashContent">  
1152 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1153 - <p class="errorSetFlashHintInfo">地址栏输入about:addons→插件→开启Shockwave Flash</p>  
1154 - <a class="errorSetFlashHintA" href="images/flashHint/setFirefox.png" target=_blank>点击查看详情步骤</a>  
1155 - </div>  
1156 - </div>  
1157 - <div class="errorHint setQQFlash" data="">  
1158 - <div class="errorFlashHintHeadline">  
1159 - <div class="errorHintHeadlineTitle"></div>  
1160 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1161 - </div>  
1162 - <div class="errorSetFlashContent">  
1163 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1164 - <p class="errorSetFlashHintInfo">地址栏输入qqbrowser://plugins→插件→开启Adobe Flash Player→运行</p>  
1165 - <a class="errorSetFlashHintA" href="images/flashHint/setQQ.png" target=_blank>点击查看详情步骤</a>  
1166 - </div>  
1167 - </div>  
1168 - <div class="errorHint set2345Flash" data="">  
1169 - <div class="errorFlashHintHeadline">  
1170 - <div class="errorHintHeadlineTitle"></div>  
1171 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1172 - </div>  
1173 - <div class="errorSetFlashContent">  
1174 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1175 - <p class="errorSetFlashHintInfo">地址栏输入chrome://plugins→插件→开启Adobe Flash Player→运行</p>  
1176 - <a class="errorSetFlashHintA" href="images/flashHint/set2345.png" target=_blank>点击查看详情步骤</a>  
1177 - </div>  
1178 - </div>  
1179 - <div class="errorHint set360anquanFlash" data="">  
1180 - <div class="errorFlashHintHeadline">  
1181 - <div class="errorHintHeadlineTitle"></div>  
1182 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1183 - </div>  
1184 - <div class="errorSetFlashContent">  
1185 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1186 - <p class="errorSetFlashHintInfo">地址栏输入se://plugins→插件→开启Adobe Flash Player→运行</p>  
1187 - <a class="errorSetFlashHintA" href="images/flashHint/set360anquan.png" target=_blank>点击查看详情步骤</a>  
1188 - </div>  
1189 - </div>  
1190 - <div class="errorHint set360jisuFlash" data="">  
1191 - <div class="errorFlashHintHeadline">  
1192 - <div class="errorHintHeadlineTitle"></div>  
1193 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1194 - </div>  
1195 - <div class="errorSetFlashContent">  
1196 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1197 - <p class="errorSetFlashHintInfo">地址栏输入chrome://plugins→插件→开启Adobe Flash Player→运行</p>  
1198 - <a class="errorSetFlashHintA" href="images/flashHint/set360jisu.png" target=_blank>点击查看详情步骤</a>  
1199 - </div>  
1200 - </div>  
1201 - <div class="errorHint setsougouFlash" data="">  
1202 - <div class="errorFlashHintHeadline">  
1203 - <div class="errorHintHeadlineTitle"></div>  
1204 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1205 - </div>  
1206 - <div class="errorSetFlashContent">  
1207 - <p class="errorSetFlashHintTit">flash已被禁止,请按以下步骤操作:</p>  
1208 - <p class="errorSetFlashHintInfo">打开右上角工具→选项→程序→管理加载项→工具栏和扩展→开启Shockwave Flash Object</p>  
1209 - <a class="errorSetFlashHintA" href="images/flashHint/setsougou.png" target=_blank>点击查看详情步骤</a>  
1210 - </div>  
1211 - </div>  
1212 - <div class="errorHint errorHint1 errorPublicHint" data="">  
1213 - <div class="errorFlashHintHeadline">  
1214 - <div class="errorHintHeadlineTitle"></div>  
1215 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1216 - </div>  
1217 - <div class="errorPublicHintContent"></div>  
1218 - </div>  
1219 - <div class="errorHint errorHint1 networkDisconnection" data="">  
1220 - <div class="errorFlashHintHeadline">  
1221 - <div class="errorHintHeadlineTitle"></div>  
1222 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1223 - </div>  
1224 - <div class="errornetworkHintContent"></div>  
1225 - </div>  
1226 - <div class="errorHint errorHint1 choiceHintBox" id="publicChoiceErrorrBox" data="">  
1227 - <div class="errorFlashHintHeadline">  
1228 - <div class="errorHintHeadlineTitle" id="choiceHintBoxTitle"></div>  
1229 - </div>  
1230 - <div class="endClassHintContent" >  
1231 - <p class="showWindowText" id="choiceHintBoxText"></p>  
1232 - <button class="closeInfoBtn" id="choiceConfirm">确定</button>  
1233 - <button class="cancelCloseInfo closeInfoBtn" id="choiceCancel">取消</button>  
1234 - </div>  
1235 - </div>  
1236 - <div class="errorHint errorHint1 publicErrorBox" data="">  
1237 - <div class="errorFlashHintHeadline">  
1238 - <div class="errorHintHeadlineTitle"></div>  
1239 - <a href="javascript: void(0)" class="errorFlashHintA iconfont">&#xe638;</a>  
1240 - </div>  
1241 - <div class="errorPublicHintContent"></div>  
1242 - </div>  
1243 -</div>  
1244 -<!--warn提示信息-->  
1245 -<div class="warnHintBox" id="warnHintBox">  
1246 - <a href="javascript: void(0)" class="warnHintA iconfont" id="warnHintA">&#xe638;</a>  
1247 - <p class="warnHintContent" id="warnHintContent">warn警告框</p>  
1248 </div> 366 </div>
1249 </body> 367 </body>
1250 </html> 368 </html>
@@ -51,18 +51,18 @@ class Chat extends Ape { @@ -51,18 +51,18 @@ class Chat extends Ape {
51 51
52 this.userList.on(UserList.WINDOW_VIEW_CHANGE, this.onWindowViewChange.bind(this)); 52 this.userList.on(UserList.WINDOW_VIEW_CHANGE, this.onWindowViewChange.bind(this));
53 //布局 53 //布局
54 - $("#txt_message")[0].value = '' 54 + // $("#txt_message")[0].value = ''
55 //UI按钮点击事件 55 //UI按钮点击事件
56 $("#btn_send").on("click", this._sendMessageHandler.bind(this)); 56 $("#btn_send").on("click", this._sendMessageHandler.bind(this));
57 //回车键发送聊天消息 57 //回车键发送聊天消息
58 let that = this; 58 let that = this;
59 59
60 - $("#txt_message").on("keydown", function (e) { 60 + /* $("#txt_message").on("keydown", function (e) {
61 let curKey = e.which; 61 let curKey = e.which;
62 if (ClassDataProxy.isKeypress) { 62 if (ClassDataProxy.isKeypress) {
63 if (curKey == 13) that._sendMessageHandler(); 63 if (curKey == 13) that._sendMessageHandler();
64 } 64 }
65 - }); 65 + });*/
66 66
67 $('.left').on('contextmenu', this._preventDefault.bind(this)); 67 $('.left').on('contextmenu', this._preventDefault.bind(this));
68 $('.header').on('contextmenu', this._preventDefault.bind(this)); 68 $('.header').on('contextmenu', this._preventDefault.bind(this));
@@ -37,13 +37,13 @@ class ChatFace extends Emiter { @@ -37,13 +37,13 @@ class ChatFace extends Emiter {
37 //选项卡s 37 //选项卡s
38 this._changeTab(); 38 this._changeTab();
39 //文字区域点击后表情消失 39 //文字区域点击后表情消失
40 - $("#txt_message").on("focus",that._hideFace.bind(this)); 40 + /* $("#txt_message").on("focus",that._hideFace.bind(this));
41 $("#panel_message").on("click",that._hideFace.bind(this)); 41 $("#panel_message").on("click",that._hideFace.bind(this));
42 $(".middle").on("click",that._hideFace.bind(this)); 42 $(".middle").on("click",that._hideFace.bind(this));
43 $(".left").on("click",that._hideFace.bind(this)); 43 $(".left").on("click",that._hideFace.bind(this));
44 $(".header").on("click",that._hideFace.bind(this)); 44 $(".header").on("click",that._hideFace.bind(this));
45 $(".videoWindow").on("click",that._hideFace.bind(this)); 45 $(".videoWindow").on("click",that._hideFace.bind(this));
46 - $(".userListTitle").on("click",that._hideFace.bind(this)); 46 + $(".userListTitle").on("click",that._hideFace.bind(this));*/
47 47
48 } 48 }
49 49
@@ -32,7 +32,7 @@ class ClassApe extends Ape { @@ -32,7 +32,7 @@ class ClassApe extends Ape {
32 //设置当前版本号 32 //设置当前版本号
33 $('#pcVersion').text("v2.58.3.20170823"); 33 $('#pcVersion').text("v2.58.3.20170823");
34 //布局,未加入课堂成之前上课界面不显示 34 //布局,未加入课堂成之前上课界面不显示
35 - $('.header').hide(); 35 + //$('.header').hide();
36 //$(".content ").hide(); 36 //$(".content ").hide();
37 $(".loginBg ").show();//登陆框 37 $(".loginBg ").show();//登陆框
38 $(".initParamsOut ").show();//初始化界面 38 $(".initParamsOut ").show();//初始化界面
  1 +//*
  2 +// 首页模块
  3 +// */
  4 +
  5 +import Loger from "../Loger";
  6 +import Ape from "./Ape";
  7 +import xdysdk from "libs/xdysdk";
  8 +import DrawTool from "./DrawTool";
  9 +import LaserPen from "./LaserPen";
  10 +import $ from "jquery";
  11 +import ClassDataProxy from "proxy/ClassDataProxy";
  12 +
  13 +let loger = Loger.getLoger('PC-HomeApe');
  14 +class HomeApe extends Ape {
  15 + constructor() {
  16 + super();
  17 + this.classDateList = {};//课堂的所有数据
  18 + this.addEvent();
  19 + this.init();
  20 + }
  21 +
  22 + init() {
  23 + //判断列表在右侧时取消边距
  24 + this._judgeListPlace();
  25 +
  26 + $('#defaultBtn').on('click',this._lanclassBtnHandler.bind(this));
  27 + }
  28 +
  29 + addEvent() {
  30 +
  31 + }
  32 + _judgeListPlace(){
  33 + let i;
  34 + let curriculumList = document.getElementsByClassName('curriculumList');
  35 + for(i=0;i<curriculumList.length;i++){
  36 + if((i%4) == 3){
  37 + $(curriculumList[i]).addClass('classifyListR');
  38 + }
  39 + }
  40 + }
  41 + _lanclassBtnHandler(evt){
  42 + $(evt.target).addClass('active').siblings().removeClass('active');
  43 + $('#slideshow').show();
  44 + $('#defaultBox').show();
  45 + $('#classifyListBox').hide();
  46 + }
  47 +
  48 +}
  49 +export default new HomeApe;
  1 +//*
  2 +// 互动课堂模块
  3 +// */
  4 +
  5 +import Loger from "../Loger";
  6 +import Ape from "./Ape";
  7 +import xdysdk from "libs/xdysdk";
  8 +import DrawTool from "./DrawTool";
  9 +import LaserPen from "./LaserPen";
  10 +import $ from "jquery";
  11 +import ClassDataProxy from "proxy/ClassDataProxy";
  12 +let loger = Loger.getLoger('PC-LanclassApe');
  13 +
  14 +const classifyList = `<div class="classifyList {_classifyListR}">
  15 + <img class="curriculumListImg" src="{_msgImg}" alt="">
  16 + <p class="curriculumListTit">{_classroomTitle}</p>
  17 + <p class="curriculumListInfo">
  18 + <span class="curriculumListTime">{_schoolTime}</span>
  19 + <span class="curriculumListNum">{_subscribeNum}</span>
  20 + </p>
  21 + </div>`;
  22 +
  23 +class LanclassApe extends Ape {
  24 + constructor() {
  25 + super();
  26 + this.classDateList = {};//课堂的所有数据
  27 + this.addEvent();
  28 + this.init();
  29 + }
  30 +
  31 + init() {
  32 + //判断列表在右侧时取消边距
  33 + this._judgeListPlace();
  34 + $('#collectYes').hide();
  35 + $('#lanclassBtn').on('click',this._lanclassBtnHandler.bind(this));
  36 +
  37 + $('#classifyListBox').on('click','.pageNumBtn',this._pageNumBtnHandler.bind(this));//点击翻页
  38 + }
  39 +
  40 + addEvent() {
  41 +
  42 + }
  43 + _judgeListPlace(){
  44 + let i=(i%4);
  45 + $('#classifyListContent').find('.classifyList').eq(i==3).addClass('classifyListR');
  46 + }
  47 + _lanclassBtnHandler(evt){
  48 + $(evt.target).addClass('active').siblings().removeClass('active');
  49 + $('#slideshow').hide();
  50 + $('#defaultBox').hide();
  51 + $('#classifyListBox').show();
  52 + this.detailPage();
  53 + }
  54 + //点击翻页
  55 + _pageNumBtnHandler(evt){
  56 + let _ele = $(evt.target);
  57 + let that = this;
  58 + if(_ele.siblings().length > 0 ){
  59 + _ele.addClass('pageNumBtnCheck').siblings().removeClass('pageNumBtnCheck');
  60 + console.log(_ele.text(),111111111111111111111111111111111111)
  61 + $.ajax({
  62 + type: "PUT",
  63 + url: 'http://192.168.31.8:3000/meeting/getMeeting',
  64 + headers: {'Content-Type': 'application/json',
  65 + 'page':_ele.text(),
  66 + 'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo',
  67 + },
  68 +
  69 + success:function(_data){
  70 + if(_data != 200 ){
  71 + // loger.warn(_data.data.msg)
  72 + }
  73 + that.classDateList = _data.returnData.data;
  74 + //切换列表内容
  75 + that._classDateContent(that.classDateList);
  76 + loger.log(_data,'成功')
  77 + },
  78 + error:function(error){
  79 + console.log(error,'失败')
  80 + }
  81 + })
  82 + }else{
  83 + return;
  84 + }
  85 + }
  86 + detailPage(){
  87 + let that = this;
  88 + $.ajax({
  89 + type: "PUT",
  90 + url: 'http://192.168.31.8:3000/meeting/getMeeting',
  91 + headers: {'Content-Type': 'application/json',
  92 + 'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IlhXQnJlRU00T0swYTVqUUIyUTFicGtObHlxOUFWbXZkIiwibmFtZSI6ImFkbWluIiwiY29kZSI6MSwiaWF0IjoxNTAzNDUxODU0LCJleHAiOjIyODEwNTE4NTR9.3kTVzKd_jbP7l69nxOpNaFeSjVnnjZkagYMzRB8fjNo'},
  93 + success:function(_data){
  94 + // loger.log(_data,'成功')
  95 + //获取课堂数据
  96 + that._gainClassData(_data);
  97 + },
  98 + error:function(error){
  99 + console.log(error,'失败')
  100 + }
  101 + })
  102 + }
  103 + _gainClassData(_data){
  104 + if(_data || _data.code == 200){
  105 + this.classDateList = _data.returnData.data;
  106 + let classifyListContent = $('#classifyListContent');
  107 + classifyListContent.empty();
  108 + //切换列表分类的标题
  109 + this._classDateTitle();
  110 + //切换列表内容
  111 + this._classDateContent(this.classDateList);
  112 + //页码
  113 + this._classDatepageNum(this.classDateList);
  114 + }
  115 + }
  116 + _classDateTitle(){
  117 + $('#classifyListTitle').html($('#lessonsTitle').html());
  118 + }
  119 + _classDateContent(_data){
  120 + let classifyListContent = $('#classifyListContent');
  121 + classifyListContent.empty();
  122 + let _dataList = _data.meetingInfo;
  123 + for(let i = 0;i<_dataList.length;i++){
  124 + let j = (i%4)==3;
  125 + let _classifyList = this._format(classifyList,{
  126 + _classifyListR : j?'classifyListR':'',
  127 + _msgImg :'../images/u373.png',
  128 + _classroomTitle : _dataList[i].meetingName,
  129 + _schoolTime : '11',
  130 + _subscribeNum : _dataList[i].reservationNumber+'人已预约'
  131 + })
  132 + classifyListContent.append(_classifyList);
  133 + }
  134 + }
  135 + _classDatepageNum(_data){ //page
  136 + let _pageContent = _data.count;
  137 + let _pageNum = Math.ceil(_pageContent / _data.pageno);
  138 +
  139 + this.pagingConstruct(1,_pageNum);
  140 + }
  141 + pagingConstruct(paging,total){
  142 + let classifyListBox = $('#classifyListBox');
  143 + let pagingDivInnerHTML = '<div class="pageNumContentBox"><div class="pageNumContent">';
  144 + let isHiddenExist = 0;
  145 + for(let i =1 ;i<=total;i++){
  146 + if(i == paging){
  147 + pagingDivInnerHTML +='<span class="pageNumBtn pageNumBtnCheck">'+i+'</span>';
  148 + }else{
  149 + if (i < 4 || i < (paging + 4) && i > (paging - 2) && i < (total / 2 + 2) || i > (total - 2)) {
  150 + pagingDivInnerHTML +='<span class="pageNumBtn">'+i+'</span>';
  151 + isHiddenExist = 0;
  152 + }else{
  153 + if(isHiddenExist == 0){
  154 + pagingDivInnerHTML += '<span>...</span>';
  155 + isHiddenExist = 1;
  156 + }
  157 + }
  158 + }
  159 + }
  160 + pagingDivInnerHTML += '</div></div>';
  161 + classifyListBox.append(pagingDivInnerHTML);
  162 + }
  163 + //工具类
  164 + _format(str, obj) {
  165 + return str.replace(/\{(\w+)\}/g, function (match, group, index) {
  166 + return obj[group];
  167 + });
  168 + };
  169 +}
  170 +export default new LanclassApe;
  1 +//*
  2 +// 标注模块
  3 +// */
  4 +
  5 +import Loger from "../Loger";
  6 +import Ape from "./Ape";
  7 +import xdysdk from "libs/xdysdk";
  8 +import DrawTool from "./DrawTool";
  9 +import LaserPen from "./LaserPen";
  10 +import $ from "jquery";
  11 +import ClassDataProxy from "proxy/ClassDataProxy";
  12 +
  13 +let loger = Loger.getLoger('PC-LoginOrRegister');
  14 +class LoginOrRegister extends Ape {
  15 + constructor() {
  16 + super();
  17 + this.addEvent();
  18 + this.init();
  19 + }
  20 +
  21 + init() {
  22 + $('#usersignA').on('click',this._usersignAHandler.bind(this));//关闭注册界面
  23 + $('#userLoginA').on('click',this._userLoginAHandler.bind(this));//关闭登录界面
  24 + $('#skipLoginBtn').on('click',this._skipLoginBtnHandler.bind(this));//注册跳转登录界面
  25 + $('#nowUserSign').on('click',this._nowUserSignHandler.bind(this));//新用户注册
  26 +
  27 + $('#signPhone').on('focus',this._signFocusHandler.bind(this));//注册判断手机号
  28 + $('#signMail').on('focus',this._signFocusHandler.bind(this));//注册判断手机号
  29 + $('#signPassWord').on('focus',this._signFocusHandler.bind(this));//注册判断密码
  30 + $('#securityCode').on('focus',this._signFocusHandler.bind(this));//注册判断验证码
  31 +
  32 + $('#signBtn').on('click',this._signBtnHandler.bind(this));//注册信息提交
  33 +
  34 + $('#userLoginBtn').on('click',this._loginBtnHandler.bind(this));//登录信息提交
  35 +
  36 + $('#homeUserLoginBtn').on('click',this._homeUserLoginBtnHandler.bind(this));//首页用户登录
  37 +
  38 + }
  39 +
  40 + addEvent() {
  41 +
  42 + }
  43 + //关闭注册界面
  44 + _usersignAHandler(){
  45 + $('#userSignBox').hide();
  46 + }
  47 + //关闭登录界面
  48 + _userLoginAHandler(){
  49 + $('#userLoginBox').hide();
  50 + }
  51 + //注册跳转登录界面
  52 + _skipLoginBtnHandler(){
  53 + $('#userSignBox').hide();
  54 + $('#userLoginBox').show();
  55 + }
  56 + //新用户注册
  57 + _nowUserSignHandler(){
  58 + $('#userLoginBox').hide();
  59 + $('#userSignBox').show();
  60 + }
  61 + //首页用户登录
  62 + _homeUserLoginBtnHandler(){
  63 + $('#userLoginBox').show();
  64 + }
  65 + _signFocusHandler(evt){
  66 + let _ele = $(evt.target);
  67 + if(_ele.css('color') != 'rgb(0, 0, 0)'){
  68 + _ele.val('')
  69 + .css('color','#000');
  70 + }
  71 + }
  72 + _signName(_name){
  73 + if(!_name.value){
  74 + _name.focus();
  75 + return false;
  76 + }
  77 + }
  78 + _signPhone(phone){
  79 + let reg = "^1[3|4|5|8][0-9]\\d{8}$";
  80 + let re = new RegExp(reg);
  81 + if(!phone.value){
  82 + phone.focus();
  83 + return false;
  84 + }
  85 + if (re.test(phone.value)) {
  86 + $('#signPhone').css('color','#000');
  87 + } else {
  88 + $('#signPhone').val('手机号输入不合法')
  89 + .css('color','#d95136');
  90 + phone.focus();
  91 + return false;
  92 + }
  93 + }
  94 + _signMail(mail){
  95 + let filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  96 + if(!mail.value){
  97 + mail.focus();
  98 + return false;
  99 + }
  100 + if (filter.test(mail.value)){
  101 + $('#signMail').css('color','#000');
  102 + }
  103 + else {
  104 + $('#signMail').val('电子邮箱输入不合法')
  105 + .css('color','#d95136');
  106 + mail.focus();
  107 + return false;
  108 + }
  109 + }
  110 + //判断密码
  111 + _signPassWord(_passWord){
  112 + let reg = /^[0-9a-zA-Z]{8,12}$/;//密码正则
  113 + if(!_passWord.value){
  114 + _passWord.focus();
  115 + return false;
  116 + }
  117 + if(reg.test(_passWord.value)){
  118 + $('#signPassWord').css('color','#000');
  119 + }else{
  120 + $('#signPassWord').val('密码长度不够或太长')
  121 + .css('color','#d95136');
  122 + _passWord.focus();
  123 + return false;
  124 + }
  125 + }
  126 + //判断验证码
  127 + _securityCode(securityCode){
  128 + let reg= /^\d{4}$/;//验证码正则
  129 + if(!securityCode.value){
  130 + securityCode.focus();
  131 + return false;
  132 + }
  133 + if(reg.test(securityCode.value)){
  134 + $('#securityCode').css('color','#000');
  135 + }else{
  136 + $('#securityCode').val('验证码不正确')
  137 + .css('color','#d95136');
  138 + securityCode.focus();
  139 + return false;
  140 + }
  141 + }
  142 + //注册信息提交
  143 + _signBtnHandler(){
  144 + let _name = document.getElementById("signName");//用户名
  145 + let phone = document.getElementById("signPhone");//手机号
  146 + let mail = document.getElementById("signMail");//邮箱
  147 + let _passWord = document.getElementById("signPassWord");//密码
  148 + let securityCode = document.getElementById("securityCode");//验证码
  149 + let permitSign = document.getElementById("permitSign");//是否同意
  150 + if(_name.value && phone.value && mail.value && _passWord.value && securityCode.value && $(permitSign).is(':checked')){
  151 + let signInfo = {
  152 + "loginName": _name.value, // 登录名
  153 + "password": _passWord.value, //登录密码
  154 + "companyName":null, //公司名字
  155 + "userName":_name.value, //用户名
  156 + "userRole":4, // 用户角色 0超级管理员,1管理员,2监课,3老师,4学生
  157 + "userEmail":mail.value, // 用户邮箱
  158 + "userMobile":parseInt(phone.value), // 用户手机号
  159 + "content":"2017-09-01", // 用户简介
  160 + "groupId":1, //用户组id
  161 + "IDcard":123123
  162 + }
  163 + let that = this;
  164 + $.ajax({
  165 + type: "POST",
  166 + url: 'http://192.168.31.8:3000/users/addUser',
  167 + data: signInfo,
  168 + success:function(_data){
  169 + console.log(_data,'成功')
  170 + //注册成功后 跳转登录界面
  171 + that._successSign(_data);
  172 + },
  173 + error:function(error){
  174 + console.log(error,'失败')
  175 + }
  176 + })
  177 + }else{
  178 + this._securityCode(securityCode);//判断验证码
  179 + this._signPassWord(_passWord);//判断密码
  180 + this._signMail(mail);//判断邮箱
  181 + this._signPhone(phone);//判断手机号
  182 + this._signName(_name);//判断用户名
  183 + }
  184 + }
  185 + //注册成功后 跳转登录界面
  186 + _successSign(_data){
  187 + if(_data.code == 200){
  188 + this._skipLoginBtnHandler();
  189 + }
  190 + }
  191 + _loginName(_name){
  192 + if(_name.value){
  193 + _name.focus();
  194 + return false;
  195 + }
  196 + }
  197 + _loginPassWord(_passWord){
  198 + if(_passWord.value){
  199 + _passWord.focus();
  200 + return false;
  201 + }
  202 + }
  203 + //登录信息提交
  204 + _loginBtnHandler(){
  205 + let _name = document.getElementById("loginName");//用户名
  206 + let _passWord = document.getElementById("loginPassWord");//手机号
  207 + if(_name.value && _passWord.value){
  208 + let signInfo = {
  209 + "loginName": _name.value, // 登录名
  210 + "password": _passWord.value, //登录密码
  211 + "code":"quwerdf"
  212 + }
  213 + $.ajax({
  214 + type: "POST",
  215 + url: 'http://192.168.31.8:3000/users/login',
  216 + data: signInfo,
  217 + success:function(_data){
  218 + console.log(_data,'成功')
  219 + that.successLogin(_data);
  220 + },
  221 + error:function(error){
  222 + debugger;
  223 + console.log(error,'失败')
  224 + }
  225 + })
  226 + }else{
  227 + this._loginName(_name);//登录判断用户名
  228 + this._loginPassWord(_passWord);//登录判断密码
  229 + }
  230 + }
  231 + //用户成功登录
  232 + successLogin(_data){
  233 + if(_data.code == 200){
  234 + this._userLoginAHandler();
  235 + }
  236 + }
  237 +
  238 +}
  239 +export default new LoginOrRegister;
  1 +//*
  2 +// 标注模块
  3 +// */
  4 +
  5 +import Loger from "../Loger";
  6 +import Ape from "./Ape";
  7 +import xdysdk from "libs/xdysdk";
  8 +import DrawTool from "./DrawTool";
  9 +import LaserPen from "./LaserPen";
  10 +import $ from "jquery";
  11 +import ClassDataProxy from "proxy/ClassDataProxy";
  12 +
  13 +let loger = Loger.getLoger('PC-Slideshow');
  14 +class Slideshow extends Ape {
  15 + constructor() {
  16 + super();
  17 + this._timer = null;
  18 + this.windowWidth = 0;
  19 + this.num = 0;
  20 + this.len = 0;
  21 + this.addEvent();
  22 + this.init();
  23 + }
  24 +
  25 + init() {
  26 + $(window).on('resize',this._imgReload.bind(this));
  27 + this.slideImg();
  28 + this._imgReload();
  29 + $(".slidesImg").on('load', this._onLoadImage.bind(this));
  30 + $('#dots li').on('mouseenter',this._mouseenterHandler.bind(this));
  31 + $('#dots li').on('mouseleave',this._mouseleaveHandler.bind(this));
  32 + }
  33 +
  34 + addEvent() {
  35 +
  36 + }
  37 + _onLoadImage(){
  38 + this._imgReload();
  39 + }
  40 + slideImg(){
  41 +
  42 +
  43 + let oli = document.getElementById('dots').getElementsByTagName("li");
  44 + let _num = 0;
  45 +
  46 + let clone=$(".slidesMap").first().clone();
  47 + $("#motionMapBox").append(clone);
  48 +
  49 + let li = document.getElementById('motionMapBox').getElementsByTagName("li");
  50 + let size = li.length
  51 + this.num = _num;
  52 + this.len = size;
  53 +
  54 + this._timer = setInterval(function(){
  55 + li[_num].style.display="none";
  56 + _num=++_num==size ? 0:_num;
  57 + li[_num].style.display="inline-block";
  58 + // $("#motionMapBox").stop().animate({left:-this.num*this.windowWidth},500);
  59 + $("#dots li").eq(_num).addClass('active').siblings().removeClass('active');
  60 +
  61 + },3000);//切换时间
  62 + }
  63 + _mouseenterHandler(){
  64 + clearInterval(this._timer);
  65 + }
  66 + _mouseleaveHandler(){
  67 +
  68 + }
  69 + _move(){
  70 + let li = document.getElementById('motionMapBox').getElementsByTagName("li");
  71 + this._timer = setInterval(function(){
  72 + li[_num].style.display="none";
  73 + _num=++_num==size ? 0:_num;
  74 + li[_num].style.display="inline-block";
  75 + // $("#motionMapBox").stop().animate({left:-this.num*this.windowWidth},500);
  76 + $("#dots li").eq(_num).addClass('active').siblings().removeClass('active');
  77 +
  78 + },3000);//切换时间
  79 + }
  80 + /*slideImg(){
  81 +
  82 + let i = 0;
  83 + let width = $('.slidesMap').width();
  84 + let clone=$(".slidesMap").first().clone();
  85 + $("#motionMapBox").append(clone);
  86 + let size = document.getElementById('motionMapBox').getElementsByTagName("li").length;
  87 + for(let j=0;j<size-1;j++){
  88 + $("#dots").append("<li></li>");
  89 + }
  90 + $("#dots li").first().addClass('active');
  91 +
  92 + $(".dots li").hover(function(){
  93 + let index=$(this).index();
  94 + i=index;
  95 + $(".motionMapBox").stop().animate({left:-index*width},500);
  96 + $(this).addClass('active').siblings().removeClass('active');
  97 + })
  98 + let t=setInterval(function(){
  99 + i++;
  100 + move();
  101 + },2000);
  102 +
  103 + //对banner定时器的操作
  104 + $(".slideshow").hover(function(){
  105 + clearInterval(t);
  106 + },function(){
  107 + t=setInterval(move,2000);
  108 + })
  109 +
  110 +
  111 + function move(){
  112 + if(i==size){
  113 + $("#motionMapBox").css({left:0});
  114 + i=1;
  115 + }
  116 + if(i==-1){
  117 + $("#motionMapBox").css({left:-(size-1)*width});
  118 + i=size-2;
  119 + }
  120 +
  121 + $("#motionMapBox").stop().animate({left:-i*width},500);
  122 +
  123 + if(i==size-1){
  124 + $("#dots li").eq(0).addClass('active').siblings().removeClass('active');
  125 + }else{
  126 + $("#dots li").eq(i).addClass('active').siblings().removeClass('active');
  127 + }
  128 + }
  129 +
  130 + }*/
  131 + _imgReload(){
  132 + let _windowWidth = $("body").width();
  133 + this.windowWidth = _windowWidth;
  134 + $('.slidesMap').css({width:_windowWidth + "px"});
  135 + $('.slidesImg').css({width:_windowWidth + "px"});
  136 +
  137 + /* let imgHeight = 0;
  138 +
  139 + let wtmp = $("body").width();
  140 +
  141 +
  142 + $("#motionMapBox li").each(function(){
  143 +
  144 + $(this).css({width:wtmp + "px"});
  145 +
  146 + });
  147 +
  148 + $(".slidesImg").each(function(){
  149 +
  150 + $(this).css({width:wtmp + "px"});
  151 +
  152 + imgHeight = $(this).height();
  153 +
  154 + });*/
  155 + $('#motionMapBox').width($(".slidesMap").length * _windowWidth)
  156 + }
  157 +
  158 +
  159 +}
  160 +export default new Slideshow;
  1 +/**
  2 + * BxSlider v4.1.2 - Fully loaded, responsive content slider
  3 + * http://bxslider.com
  4 + *
  5 + * Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
  6 + * Written while drinking Belgian ales and listening to jazz
  7 + *
  8 + * Released under the MIT license - http://opensource.org/licenses/MIT
  9 + */
  10 +
  11 +;(function($){
  12 +
  13 + var plugin = {};
  14 +
  15 + var defaults = {
  16 +
  17 + // GENERAL
  18 + mode: 'horizontal',
  19 + slideSelector: '',
  20 + infiniteLoop: true,
  21 + hideControlOnEnd: false,
  22 + speed: 500,
  23 + easing: null,
  24 + slideMargin: 0,
  25 + startSlide: 0,
  26 + randomStart: false,
  27 + captions: false,
  28 + ticker: false,
  29 + tickerHover: false,
  30 + adaptiveHeight: false,
  31 + adaptiveHeightSpeed: 500,
  32 + video: false,
  33 + useCSS: true,
  34 + preloadImages: 'visible',
  35 + responsive: true,
  36 + slideZIndex: 50,
  37 + wrapperClass: 'bx-wrapper',
  38 +
  39 + // TOUCH
  40 + touchEnabled: true,
  41 + swipeThreshold: 50,
  42 + oneToOneTouch: true,
  43 + preventDefaultSwipeX: true,
  44 + preventDefaultSwipeY: false,
  45 +
  46 + // PAGER
  47 + pager: true,
  48 + pagerType: 'full',
  49 + pagerShortSeparator: ' / ',
  50 + pagerSelector: null,
  51 + buildPager: null,
  52 + pagerCustom: null,
  53 +
  54 + // CONTROLS
  55 + controls: true,
  56 + nextText: 'Next',
  57 + prevText: 'Prev',
  58 + nextSelector: null,
  59 + prevSelector: null,
  60 + autoControls: false,
  61 + startText: 'Start',
  62 + stopText: 'Stop',
  63 + autoControlsCombine: false,
  64 + autoControlsSelector: null,
  65 +
  66 + // AUTO
  67 + auto: false,
  68 + pause: 4000,
  69 + autoStart: true,
  70 + autoDirection: 'next',
  71 + autoHover: false,
  72 + autoDelay: 0,
  73 + autoSlideForOnePage: false,
  74 +
  75 + // CAROUSEL
  76 + minSlides: 1,
  77 + maxSlides: 1,
  78 + moveSlides: 0,
  79 + slideWidth: 0,
  80 +
  81 + // CALLBACKS
  82 + onSliderLoad: function() {},
  83 + onSlideBefore: function() {},
  84 + onSlideAfter: function() {},
  85 + onSlideNext: function() {},
  86 + onSlidePrev: function() {},
  87 + onSliderResize: function() {}
  88 + }
  89 +
  90 + $.fn.bxSlider = function(options){
  91 +
  92 + if(this.length == 0) return this;
  93 +
  94 + // support mutltiple elements
  95 + if(this.length > 1){
  96 + this.each(function(){$(this).bxSlider(options)});
  97 + return this;
  98 + }
  99 +
  100 + // create a namespace to be used throughout the plugin
  101 + var slider = {};
  102 + // set a reference to our slider element
  103 + var el = this;
  104 + plugin.el = this;
  105 +
  106 + /**
  107 + * Makes slideshow responsive
  108 + */
  109 + // first get the original window dimens (thanks alot IE)
  110 + var windowWidth = $(window).width();
  111 + var windowHeight = $(window).height();
  112 +
  113 +
  114 +
  115 + /**
  116 + * ===================================================================================
  117 + * = PRIVATE FUNCTIONS
  118 + * ===================================================================================
  119 + */
  120 +
  121 + /**
  122 + * Initializes namespace settings to be used throughout plugin
  123 + */
  124 + var init = function(){
  125 + // merge user-supplied options with the defaults
  126 + slider.settings = $.extend({}, defaults, options);
  127 + // parse slideWidth setting
  128 + slider.settings.slideWidth = parseInt(slider.settings.slideWidth);
  129 + // store the original children
  130 + slider.children = el.children(slider.settings.slideSelector);
  131 + // check if actual number of slides is less than minSlides / maxSlides
  132 + if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides = slider.children.length;
  133 + if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides = slider.children.length;
  134 + // if random start, set the startSlide setting to random number
  135 + if(slider.settings.randomStart) slider.settings.startSlide = Math.floor(Math.random() * slider.children.length);
  136 + // store active slide information
  137 + slider.active = { index: slider.settings.startSlide }
  138 + // store if the slider is in carousel mode (displaying / moving multiple slides)
  139 + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1;
  140 + // if carousel, force preloadImages = 'all'
  141 + if(slider.carousel) slider.settings.preloadImages = 'all';
  142 + // calculate the min / max width thresholds based on min / max number of slides
  143 + // used to setup and update carousel slides dimensions
  144 + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin);
  145 + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
  146 + // store the current state of the slider (if currently animating, working is true)
  147 + slider.working = false;
  148 + // initialize the controls object
  149 + slider.controls = {};
  150 + // initialize an auto interval
  151 + slider.interval = null;
  152 + // determine which property to use for transitions
  153 + slider.animProp = slider.settings.mode == 'vertical' ? 'top' : 'left';
  154 + // determine if hardware acceleration can be used
  155 + slider.usingCSS = slider.settings.useCSS && slider.settings.mode != 'fade' && (function(){
  156 + // create our test div element
  157 + var div = document.createElement('div');
  158 + // css transition properties
  159 + var props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
  160 + // test for each property
  161 + for(var i in props){
  162 + if(div.style[props[i]] !== undefined){
  163 + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase();
  164 + slider.animProp = '-' + slider.cssPrefix + '-transform';
  165 + return true;
  166 + }
  167 + }
  168 + return false;
  169 + }());
  170 + // if vertical mode always make maxSlides and minSlides equal
  171 + if(slider.settings.mode == 'vertical') slider.settings.maxSlides = slider.settings.minSlides;
  172 + // save original style data
  173 + el.data("origStyle", el.attr("style"));
  174 + el.children(slider.settings.slideSelector).each(function() {
  175 + $(this).data("origStyle", $(this).attr("style"));
  176 + });
  177 + // perform all DOM / CSS modifications
  178 + setup();
  179 + }
  180 +
  181 + /**
  182 + * Performs all DOM and CSS modifications
  183 + */
  184 + var setup = function(){
  185 + // wrap el in a wrapper
  186 + el.wrap('<div class="' + slider.settings.wrapperClass + '"><div class="bx-viewport"></div></div>');
  187 + // store a namspace reference to .bx-viewport
  188 + slider.viewport = el.parent();
  189 + // add a loading div to display while images are loading
  190 + slider.loader = $('<div class="bx-loading" />');
  191 + slider.viewport.prepend(slider.loader);
  192 + // set el to a massive width, to hold any needed slides
  193 + // also strip any margin and padding from el
  194 + el.css({
  195 + width: slider.settings.mode == 'horizontal' ? (slider.children.length * 100 + 215) + '%' : 'auto',
  196 + position: 'relative'
  197 + });
  198 + // if using CSS, add the easing property
  199 + if(slider.usingCSS && slider.settings.easing){
  200 + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing);
  201 + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing)
  202 + }else if(!slider.settings.easing){
  203 + slider.settings.easing = 'swing';
  204 + }
  205 + var slidesShowing = getNumberSlidesShowing();
  206 + // make modifications to the viewport (.bx-viewport)
  207 + slider.viewport.css({
  208 + width: '100%',
  209 + overflow: 'hidden',
  210 + position: 'relative'
  211 + });
  212 + slider.viewport.parent().css({
  213 + maxWidth: getViewportMaxWidth()
  214 + });
  215 + // make modification to the wrapper (.bx-wrapper)
  216 + if(!slider.settings.pager) {
  217 + slider.viewport.parent().css({
  218 + margin: '0 auto 0px'
  219 + });
  220 + }
  221 + // apply css to all slider children
  222 + slider.children.css({
  223 + 'float': slider.settings.mode == 'horizontal' ? 'left' : 'none',
  224 + listStyle: 'none',
  225 + position: 'relative'
  226 + });
  227 + // apply the calculated width after the float is applied to prevent scrollbar interference
  228 + slider.children.css('width', getSlideWidth());
  229 + // if slideMargin is supplied, add the css
  230 + if(slider.settings.mode == 'horizontal' && slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin);
  231 + if(slider.settings.mode == 'vertical' && slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin);
  232 + // if "fade" mode, add positioning and z-index CSS
  233 + if(slider.settings.mode == 'fade'){
  234 + slider.children.css({
  235 + position: 'absolute',
  236 + zIndex: 0,
  237 + display: 'none'
  238 + });
  239 + // prepare the z-index on the showing element
  240 + slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'});
  241 + }
  242 + // create an element to contain all slider controls (pager, start / stop, etc)
  243 + slider.controls.el = $('<div class="bx-controls" />');
  244 + // if captions are requested, add them
  245 + if(slider.settings.captions) appendCaptions();
  246 + // check if startSlide is last slide
  247 + slider.active.last = slider.settings.startSlide == getPagerQty() - 1;
  248 + // if video is true, set up the fitVids plugin
  249 + if(slider.settings.video) el.fitVids();
  250 + // set the default preload selector (visible)
  251 + var preloadSelector = slider.children.eq(slider.settings.startSlide);
  252 + if (slider.settings.preloadImages == "all") preloadSelector = slider.children;
  253 + // only check for control addition if not in "ticker" mode
  254 + if(!slider.settings.ticker){
  255 + // if pager is requested, add it
  256 + if(slider.settings.pager) appendPager();
  257 + // if controls are requested, add them
  258 + if(slider.settings.controls) appendControls();
  259 + // if auto is true, and auto controls are requested, add them
  260 + if(slider.settings.auto && slider.settings.autoControls) appendControlsAuto();
  261 + // if any control option is requested, add the controls wrapper
  262 + if(slider.settings.controls || slider.settings.autoControls || slider.settings.pager) slider.viewport.after(slider.controls.el);
  263 + // if ticker mode, do not allow a pager
  264 + }else{
  265 + slider.settings.pager = false;
  266 + }
  267 + // preload all images, then perform final DOM / CSS modifications that depend on images being loaded
  268 + loadElements(preloadSelector, start);
  269 + }
  270 +
  271 + var loadElements = function(selector, callback){
  272 + var total = selector.find('img, iframe').length;
  273 + if (total == 0){
  274 + callback();
  275 + return;
  276 + }
  277 + var count = 0;
  278 + selector.find('img, iframe').each(function(){
  279 + $(this).one('load', function() {
  280 + if(++count == total) callback();
  281 + }).each(function() {
  282 + if(this.complete) $(this).load();
  283 + });
  284 + });
  285 + }
  286 +
  287 + /**
  288 + * Start the slider
  289 + */
  290 + var start = function(){
  291 + // if infinite loop, prepare additional slides
  292 + if(slider.settings.infiniteLoop && slider.settings.mode != 'fade' && !slider.settings.ticker){
  293 + var slice = slider.settings.mode == 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides;
  294 + var sliceAppend = slider.children.slice(0, slice).clone().addClass('bx-clone');
  295 + var slicePrepend = slider.children.slice(-slice).clone().addClass('bx-clone');
  296 + el.append(sliceAppend).prepend(slicePrepend);
  297 + }
  298 + // remove the loading DOM element
  299 + slider.loader.remove();
  300 + // set the left / top position of "el"
  301 + setSlidePosition();
  302 + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior
  303 + if (slider.settings.mode == 'vertical') slider.settings.adaptiveHeight = true;
  304 + // set the viewport height
  305 + slider.viewport.height(getViewportHeight());
  306 + // make sure everything is positioned just right (same as a window resize)
  307 + el.redrawSlider();
  308 + // onSliderLoad callback
  309 + slider.settings.onSliderLoad(slider.active.index);
  310 + // slider has been fully initialized
  311 + slider.initialized = true;
  312 + // bind the resize call to the window
  313 + if (slider.settings.responsive) $(window).bind('resize', resizeWindow);
  314 + // if auto is true and has more than 1 page, start the show
  315 + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) initAuto();
  316 + // if ticker is true, start the ticker
  317 + if (slider.settings.ticker) initTicker();
  318 + // if pager is requested, make the appropriate pager link active
  319 + if (slider.settings.pager) updatePagerActive(slider.settings.startSlide);
  320 + // check for any updates to the controls (like hideControlOnEnd updates)
  321 + if (slider.settings.controls) updateDirectionControls();
  322 + // if touchEnabled is true, setup the touch events
  323 + if (slider.settings.touchEnabled && !slider.settings.ticker) initTouch();
  324 + }
  325 +
  326 + /**
  327 + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value
  328 + */
  329 + var getViewportHeight = function(){
  330 + var height = 0;
  331 + // first determine which children (slides) should be used in our height calculation
  332 + var children = $();
  333 + // if mode is not "vertical" and adaptiveHeight is false, include all children
  334 + if(slider.settings.mode != 'vertical' && !slider.settings.adaptiveHeight){
  335 + children = slider.children;
  336 + }else{
  337 + // if not carousel, return the single active child
  338 + if(!slider.carousel){
  339 + children = slider.children.eq(slider.active.index);
  340 + // if carousel, return a slice of children
  341 + }else{
  342 + // get the individual slide index
  343 + var currentIndex = slider.settings.moveSlides == 1 ? slider.active.index : slider.active.index * getMoveBy();
  344 + // add the current slide to the children
  345 + children = slider.children.eq(currentIndex);
  346 + // cycle through the remaining "showing" slides
  347 + for (i = 1; i <= slider.settings.maxSlides - 1; i++){
  348 + // if looped back to the start
  349 + if(currentIndex + i >= slider.children.length){
  350 + children = children.add(slider.children.eq(i - 1));
  351 + }else{
  352 + children = children.add(slider.children.eq(currentIndex + i));
  353 + }
  354 + }
  355 + }
  356 + }
  357 + // if "vertical" mode, calculate the sum of the heights of the children
  358 + if(slider.settings.mode == 'vertical'){
  359 + children.each(function(index) {
  360 + height += $(this).outerHeight();
  361 + });
  362 + // add user-supplied margins
  363 + if(slider.settings.slideMargin > 0){
  364 + height += slider.settings.slideMargin * (slider.settings.minSlides - 1);
  365 + }
  366 + // if not "vertical" mode, calculate the max height of the children
  367 + }else{
  368 + height = Math.max.apply(Math, children.map(function(){
  369 + return $(this).outerHeight(false);
  370 + }).get());
  371 + }
  372 +
  373 + if(slider.viewport.css('box-sizing') == 'border-box'){
  374 + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) +
  375 + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width'));
  376 + }else if(slider.viewport.css('box-sizing') == 'padding-box'){
  377 + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom'));
  378 + }
  379 +
  380 + return height;
  381 + }
  382 +
  383 + /**
  384 + * Returns the calculated width to be used for the outer wrapper / viewport
  385 + */
  386 + var getViewportMaxWidth = function(){
  387 + var width = '100%';
  388 + if(slider.settings.slideWidth > 0){
  389 + if(slider.settings.mode == 'horizontal'){
  390 + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
  391 + }else{
  392 + width = slider.settings.slideWidth;
  393 + }
  394 + }
  395 + return width;
  396 + }
  397 +
  398 + /**
  399 + * Returns the calculated width to be applied to each slide
  400 + */
  401 + var getSlideWidth = function(){
  402 + // start with any user-supplied slide width
  403 + var newElWidth = slider.settings.slideWidth;
  404 + // get the current viewport width
  405 + var wrapWidth = slider.viewport.width();
  406 + // if slide width was not supplied, or is larger than the viewport use the viewport width
  407 + if(slider.settings.slideWidth == 0 ||
  408 + (slider.settings.slideWidth > wrapWidth && !slider.carousel) ||
  409 + slider.settings.mode == 'vertical'){
  410 + newElWidth = wrapWidth;
  411 + // if carousel, use the thresholds to determine the width
  412 + }else if(slider.settings.maxSlides > 1 && slider.settings.mode == 'horizontal'){
  413 + if(wrapWidth > slider.maxThreshold){
  414 + // newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.maxSlides - 1))) / slider.settings.maxSlides;
  415 + }else if(wrapWidth < slider.minThreshold){
  416 + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides;
  417 + }
  418 + }
  419 + return newElWidth;
  420 + }
  421 +
  422 + /**
  423 + * Returns the number of slides currently visible in the viewport (includes partially visible slides)
  424 + */
  425 + var getNumberSlidesShowing = function(){
  426 + var slidesShowing = 1;
  427 + if(slider.settings.mode == 'horizontal' && slider.settings.slideWidth > 0){
  428 + // if viewport is smaller than minThreshold, return minSlides
  429 + if(slider.viewport.width() < slider.minThreshold){
  430 + slidesShowing = slider.settings.minSlides;
  431 + // if viewport is larger than minThreshold, return maxSlides
  432 + }else if(slider.viewport.width() > slider.maxThreshold){
  433 + slidesShowing = slider.settings.maxSlides;
  434 + // if viewport is between min / max thresholds, divide viewport width by first child width
  435 + }else{
  436 + var childWidth = slider.children.first().width() + slider.settings.slideMargin;
  437 + slidesShowing = Math.floor((slider.viewport.width() +
  438 + slider.settings.slideMargin) / childWidth);
  439 + }
  440 + // if "vertical" mode, slides showing will always be minSlides
  441 + }else if(slider.settings.mode == 'vertical'){
  442 + slidesShowing = slider.settings.minSlides;
  443 + }
  444 + return slidesShowing;
  445 + }
  446 +
  447 + /**
  448 + * Returns the number of pages (one full viewport of slides is one "page")
  449 + */
  450 + var getPagerQty = function(){
  451 + var pagerQty = 0;
  452 + // if moveSlides is specified by the user
  453 + if(slider.settings.moveSlides > 0){
  454 + if(slider.settings.infiniteLoop){
  455 + pagerQty = Math.ceil(slider.children.length / getMoveBy());
  456 + }else{
  457 + // use a while loop to determine pages
  458 + var breakPoint = 0;
  459 + var counter = 0
  460 + // when breakpoint goes above children length, counter is the number of pages
  461 + while (breakPoint < slider.children.length){
  462 + ++pagerQty;
  463 + breakPoint = counter + getNumberSlidesShowing();
  464 + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
  465 + }
  466 + }
  467 + // if moveSlides is 0 (auto) divide children length by sides showing, then round up
  468 + }else{
  469 + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing());
  470 + }
  471 + return pagerQty;
  472 + }
  473 +
  474 + /**
  475 + * Returns the number of indivual slides by which to shift the slider
  476 + */
  477 + var getMoveBy = function(){
  478 + // if moveSlides was set by the user and moveSlides is less than number of slides showing
  479 + if(slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()){
  480 + return slider.settings.moveSlides;
  481 + }
  482 + // if moveSlides is 0 (auto)
  483 + return getNumberSlidesShowing();
  484 + }
  485 +
  486 + /**
  487 + * Sets the slider's (el) left or top position
  488 + */
  489 + var setSlidePosition = function(){
  490 + // if last slide, not infinite loop, and number of children is larger than specified maxSlides
  491 + if(slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop){
  492 + if (slider.settings.mode == 'horizontal'){
  493 + // get the last child's position
  494 + var lastChild = slider.children.last();
  495 + var position = lastChild.position();
  496 + // set the left position
  497 + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0);
  498 + }else if(slider.settings.mode == 'vertical'){
  499 + // get the last showing index's position
  500 + var lastShowingIndex = slider.children.length - slider.settings.minSlides;
  501 + var position = slider.children.eq(lastShowingIndex).position();
  502 + // set the top position
  503 + setPositionProperty(-position.top, 'reset', 0);
  504 + }
  505 + // if not last slide
  506 + }else{
  507 + // get the position of the first showing slide
  508 + var position = slider.children.eq(slider.active.index * getMoveBy()).position();
  509 + // check for last slide
  510 + if (slider.active.index == getPagerQty() - 1) slider.active.last = true;
  511 + // set the repective position
  512 + if (position != undefined){
  513 + if (slider.settings.mode == 'horizontal') setPositionProperty(-position.left, 'reset', 0);
  514 + else if (slider.settings.mode == 'vertical') setPositionProperty(-position.top, 'reset', 0);
  515 + }
  516 + }
  517 + }
  518 +
  519 + /**
  520 + * Sets the el's animating property position (which in turn will sometimes animate el).
  521 + * If using CSS, sets the transform property. If not using CSS, sets the top / left property.
  522 + *
  523 + * @param value (int)
  524 + * - the animating property's value
  525 + *
  526 + * @param type (string) 'slider', 'reset', 'ticker'
  527 + * - the type of instance for which the function is being
  528 + *
  529 + * @param duration (int)
  530 + * - the amount of time (in ms) the transition should occupy
  531 + *
  532 + * @param params (array) optional
  533 + * - an optional parameter containing any variables that need to be passed in
  534 + */
  535 + var setPositionProperty = function(value, type, duration, params){
  536 + // use CSS transform
  537 + if(slider.usingCSS){
  538 + // determine the translate3d value
  539 + var propValue = slider.settings.mode == 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)';
  540 + // add the CSS transition-duration
  541 + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's');
  542 + if(type == 'slide'){
  543 + // set the property value
  544 + el.css(slider.animProp, propValue);
  545 + // bind a callback method - executes when CSS transition completes
  546 + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
  547 + // unbind the callback
  548 + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
  549 + updateAfterSlideTransition();
  550 + });
  551 + }else if(type == 'reset'){
  552 + el.css(slider.animProp, propValue);
  553 + }else if(type == 'ticker'){
  554 + // make the transition use 'linear'
  555 + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear');
  556 + el.css(slider.animProp, propValue);
  557 + // bind a callback method - executes when CSS transition completes
  558 + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
  559 + // unbind the callback
  560 + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
  561 + // reset the position
  562 + setPositionProperty(params['resetValue'], 'reset', 0);
  563 + // start the loop again
  564 + tickerLoop();
  565 + });
  566 + }
  567 + // use JS animate
  568 + }else{
  569 + var animateObj = {};
  570 + animateObj[slider.animProp] = value;
  571 + if(type == 'slide'){
  572 + el.animate(animateObj, duration, slider.settings.easing, function(){
  573 + updateAfterSlideTransition();
  574 + });
  575 + }else if(type == 'reset'){
  576 + el.css(slider.animProp, value)
  577 + }else if(type == 'ticker'){
  578 + el.animate(animateObj, speed, 'linear', function(){
  579 + setPositionProperty(params['resetValue'], 'reset', 0);
  580 + // run the recursive loop after animation
  581 + tickerLoop();
  582 + });
  583 + }
  584 + }
  585 + }
  586 +
  587 + /**
  588 + * Populates the pager with proper amount of pages
  589 + */
  590 + var populatePager = function(){
  591 + var pagerHtml = '';
  592 + var pagerQty = getPagerQty();
  593 + // loop through each pager item
  594 + for(var i=0; i < pagerQty; i++){
  595 + var linkContent = '';
  596 + // if a buildPager function is supplied, use it to get pager link value, else use index + 1
  597 + if(slider.settings.buildPager && $.isFunction(slider.settings.buildPager)){
  598 + linkContent = slider.settings.buildPager(i);
  599 + slider.pagerEl.addClass('bx-custom-pager');
  600 + }else{
  601 + linkContent = i + 1;
  602 + slider.pagerEl.addClass('bx-default-pager');
  603 + }
  604 + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1;
  605 + // add the markup to the string
  606 + pagerHtml += '<div class="bx-pager-item"><a href="" data-slide-index="' + i + '" class="bx-pager-link">' + linkContent + '</a></div>';
  607 + };
  608 + // populate the pager element with pager links
  609 + slider.pagerEl.html(pagerHtml);
  610 + }
  611 +
  612 + /**
  613 + * Appends the pager to the controls element
  614 + */
  615 + var appendPager = function(){
  616 + if(!slider.settings.pagerCustom){
  617 + // create the pager DOM element
  618 + slider.pagerEl = $('<div class="bx-pager" />');
  619 + // if a pager selector was supplied, populate it with the pager
  620 + if(slider.settings.pagerSelector){
  621 + $(slider.settings.pagerSelector).html(slider.pagerEl);
  622 + // if no pager selector was supplied, add it after the wrapper
  623 + }else{
  624 + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl);
  625 + }
  626 + // populate the pager
  627 + populatePager();
  628 + }else{
  629 + slider.pagerEl = $(slider.settings.pagerCustom);
  630 + }
  631 + // assign the pager click binding
  632 + slider.pagerEl.on('click', 'a', clickPagerBind);
  633 + }
  634 +
  635 + /**
  636 + * Appends prev / next controls to the controls element
  637 + */
  638 + var appendControls = function(){
  639 + slider.controls.next = $('<a class="bx-next" href="">' + slider.settings.nextText + '</a>');
  640 + slider.controls.prev = $('<a class="bx-prev" href="">' + slider.settings.prevText + '</a>');
  641 + // bind click actions to the controls
  642 + slider.controls.next.bind('click', clickNextBind);
  643 + slider.controls.prev.bind('click', clickPrevBind);
  644 + // if nextSlector was supplied, populate it
  645 + if(slider.settings.nextSelector){
  646 + $(slider.settings.nextSelector).append(slider.controls.next);
  647 + }
  648 + // if prevSlector was supplied, populate it
  649 + if(slider.settings.prevSelector){
  650 + $(slider.settings.prevSelector).append(slider.controls.prev);
  651 + }
  652 + // if no custom selectors were supplied
  653 + if(!slider.settings.nextSelector && !slider.settings.prevSelector){
  654 + // add the controls to the DOM
  655 + slider.controls.directionEl = $('<div class="bx-controls-direction" />');
  656 + // add the control elements to the directionEl
  657 + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);
  658 + // slider.viewport.append(slider.controls.directionEl);
  659 + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl);
  660 + }
  661 + }
  662 +
  663 + /**
  664 + * Appends start / stop auto controls to the controls element
  665 + */
  666 + var appendControlsAuto = function(){
  667 + slider.controls.start = $('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + slider.settings.startText + '</a></div>');
  668 + slider.controls.stop = $('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + slider.settings.stopText + '</a></div>');
  669 + // add the controls to the DOM
  670 + slider.controls.autoEl = $('<div class="bx-controls-auto" />');
  671 + // bind click actions to the controls
  672 + slider.controls.autoEl.on('click', '.bx-start', clickStartBind);
  673 + slider.controls.autoEl.on('click', '.bx-stop', clickStopBind);
  674 + // if autoControlsCombine, insert only the "start" control
  675 + if(slider.settings.autoControlsCombine){
  676 + slider.controls.autoEl.append(slider.controls.start);
  677 + // if autoControlsCombine is false, insert both controls
  678 + }else{
  679 + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop);
  680 + }
  681 + // if auto controls selector was supplied, populate it with the controls
  682 + if(slider.settings.autoControlsSelector){
  683 + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl);
  684 + // if auto controls selector was not supplied, add it after the wrapper
  685 + }else{
  686 + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl);
  687 + }
  688 + // update the auto controls
  689 + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start');
  690 + }
  691 +
  692 + /**
  693 + * Appends image captions to the DOM
  694 + */
  695 + var appendCaptions = function(){
  696 + // cycle through each child
  697 + slider.children.each(function(index){
  698 + // get the image title attribute
  699 + var title = $(this).find('img:first').attr('title');
  700 + // append the caption
  701 + if (title != undefined && ('' + title).length) {
  702 + $(this).append('<div class="bx-caption"><span>' + title + '</span></div>');
  703 + }
  704 + });
  705 + }
  706 +
  707 + /**
  708 + * Click next binding
  709 + *
  710 + * @param e (event)
  711 + * - DOM event object
  712 + */
  713 + var clickNextBind = function(e){
  714 + // if auto show is running, stop it
  715 + if (slider.settings.auto) el.stopAuto();
  716 + el.goToNextSlide();
  717 + e.preventDefault();
  718 + }
  719 +
  720 + /**
  721 + * Click prev binding
  722 + *
  723 + * @param e (event)
  724 + * - DOM event object
  725 + */
  726 + var clickPrevBind = function(e){
  727 + // if auto show is running, stop it
  728 + if (slider.settings.auto) el.stopAuto();
  729 + el.goToPrevSlide();
  730 + e.preventDefault();
  731 + }
  732 +
  733 + /**
  734 + * Click start binding
  735 + *
  736 + * @param e (event)
  737 + * - DOM event object
  738 + */
  739 + var clickStartBind = function(e){
  740 + el.startAuto();
  741 + e.preventDefault();
  742 + }
  743 +
  744 + /**
  745 + * Click stop binding
  746 + *
  747 + * @param e (event)
  748 + * - DOM event object
  749 + */
  750 + var clickStopBind = function(e){
  751 + el.stopAuto();
  752 + e.preventDefault();
  753 + }
  754 +
  755 + /**
  756 + * Click pager binding
  757 + *
  758 + * @param e (event)
  759 + * - DOM event object
  760 + */
  761 + var clickPagerBind = function(e){
  762 + // if auto show is running, stop it
  763 + if (slider.settings.auto) el.stopAuto();
  764 + var pagerLink = $(e.currentTarget);
  765 + if(pagerLink.attr('data-slide-index') !== undefined){
  766 + var pagerIndex = parseInt(pagerLink.attr('data-slide-index'));
  767 + // if clicked pager link is not active, continue with the goToSlide call
  768 + if(pagerIndex != slider.active.index) el.goToSlide(pagerIndex);
  769 + e.preventDefault();
  770 + }
  771 + }
  772 +
  773 + /**
  774 + * Updates the pager links with an active class
  775 + *
  776 + * @param slideIndex (int)
  777 + * - index of slide to make active
  778 + */
  779 + var updatePagerActive = function(slideIndex){
  780 + // if "short" pager type
  781 + var len = slider.children.length; // nb of children
  782 + if(slider.settings.pagerType == 'short'){
  783 + if(slider.settings.maxSlides > 1) {
  784 + len = Math.ceil(slider.children.length/slider.settings.maxSlides);
  785 + }
  786 + slider.pagerEl.html( (slideIndex + 1) + slider.settings.pagerShortSeparator + len);
  787 + return;
  788 + }
  789 + // remove all pager active classes
  790 + slider.pagerEl.find('a').removeClass('active');
  791 + // apply the active class for all pagers
  792 + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); });
  793 + }
  794 +
  795 + /**
  796 + * Performs needed actions after a slide transition
  797 + */
  798 + var updateAfterSlideTransition = function(){
  799 + // if infinte loop is true
  800 + if(slider.settings.infiniteLoop){
  801 + var position = '';
  802 + // first slide
  803 + if(slider.active.index == 0){
  804 + // set the new position
  805 + position = slider.children.eq(0).position();
  806 + // carousel, last slide
  807 + }else if(slider.active.index == getPagerQty() - 1 && slider.carousel){
  808 + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position();
  809 + // last slide
  810 + }else if(slider.active.index == slider.children.length - 1){
  811 + position = slider.children.eq(slider.children.length - 1).position();
  812 + }
  813 + if(position){
  814 + if (slider.settings.mode == 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }
  815 + else if (slider.settings.mode == 'vertical') { setPositionProperty(-position.top, 'reset', 0); }
  816 + }
  817 + }
  818 + // declare that the transition is complete
  819 + slider.working = false;
  820 + // onSlideAfter callback
  821 + slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
  822 + }
  823 +
  824 + /**
  825 + * Updates the auto controls state (either active, or combined switch)
  826 + *
  827 + * @param state (string) "start", "stop"
  828 + * - the new state of the auto show
  829 + */
  830 + var updateAutoControls = function(state){
  831 + // if autoControlsCombine is true, replace the current control with the new state
  832 + if(slider.settings.autoControlsCombine){
  833 + slider.controls.autoEl.html(slider.controls[state]);
  834 + // if autoControlsCombine is false, apply the "active" class to the appropriate control
  835 + }else{
  836 + slider.controls.autoEl.find('a').removeClass('active');
  837 + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active');
  838 + }
  839 + }
  840 +
  841 + /**
  842 + * Updates the direction controls (checks if either should be hidden)
  843 + */
  844 + var updateDirectionControls = function(){
  845 + if(getPagerQty() == 1){
  846 + slider.controls.prev.addClass('disabled');
  847 + slider.controls.next.addClass('disabled');
  848 + }else if(!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd){
  849 + // if first slide
  850 + if (slider.active.index == 0){
  851 + slider.controls.prev.addClass('disabled');
  852 + slider.controls.next.removeClass('disabled');
  853 + // if last slide
  854 + }else if(slider.active.index == getPagerQty() - 1){
  855 + slider.controls.next.addClass('disabled');
  856 + slider.controls.prev.removeClass('disabled');
  857 + // if any slide in the middle
  858 + }else{
  859 + slider.controls.prev.removeClass('disabled');
  860 + slider.controls.next.removeClass('disabled');
  861 + }
  862 + }
  863 + }
  864 +
  865 + /**
  866 + * Initialzes the auto process
  867 + */
  868 + var initAuto = function(){
  869 + // if autoDelay was supplied, launch the auto show using a setTimeout() call
  870 + if(slider.settings.autoDelay > 0){
  871 + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay);
  872 + // if autoDelay was not supplied, start the auto show normally
  873 + }else{
  874 + el.startAuto();
  875 + }
  876 + // if autoHover is requested
  877 + if(slider.settings.autoHover){
  878 + // on el hover
  879 + el.hover(function(){
  880 + // if the auto show is currently playing (has an active interval)
  881 + if(slider.interval){
  882 + // stop the auto show and pass true agument which will prevent control update
  883 + el.stopAuto(true);
  884 + // create a new autoPaused value which will be used by the relative "mouseout" event
  885 + slider.autoPaused = true;
  886 + }
  887 + }, function(){
  888 + // if the autoPaused value was created be the prior "mouseover" event
  889 + if(slider.autoPaused){
  890 + // start the auto show and pass true agument which will prevent control update
  891 + el.startAuto(true);
  892 + // reset the autoPaused value
  893 + slider.autoPaused = null;
  894 + }
  895 + });
  896 + }
  897 + }
  898 +
  899 + /**
  900 + * Initialzes the ticker process
  901 + */
  902 + var initTicker = function(){
  903 + var startPosition = 0;
  904 + // if autoDirection is "next", append a clone of the entire slider
  905 + if(slider.settings.autoDirection == 'next'){
  906 + el.append(slider.children.clone().addClass('bx-clone'));
  907 + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position
  908 + }else{
  909 + el.prepend(slider.children.clone().addClass('bx-clone'));
  910 + var position = slider.children.first().position();
  911 + startPosition = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
  912 + }
  913 + setPositionProperty(startPosition, 'reset', 0);
  914 + // do not allow controls in ticker mode
  915 + slider.settings.pager = false;
  916 + slider.settings.controls = false;
  917 + slider.settings.autoControls = false;
  918 + // if autoHover is requested
  919 + if(slider.settings.tickerHover && !slider.usingCSS){
  920 + // on el hover
  921 + slider.viewport.hover(function(){
  922 + el.stop();
  923 + }, function(){
  924 + // calculate the total width of children (used to calculate the speed ratio)
  925 + var totalDimens = 0;
  926 + slider.children.each(function(index){
  927 + totalDimens += slider.settings.mode == 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);
  928 + });
  929 + // calculate the speed ratio (used to determine the new speed to finish the paused animation)
  930 + var ratio = slider.settings.speed / totalDimens;
  931 + // determine which property to use
  932 + var property = slider.settings.mode == 'horizontal' ? 'left' : 'top';
  933 + // calculate the new speed
  934 + var newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property)))));
  935 + tickerLoop(newSpeed);
  936 + });
  937 + }
  938 + // start the ticker loop
  939 + tickerLoop();
  940 + }
  941 +
  942 + /**
  943 + * Runs a continuous loop, news ticker-style
  944 + */
  945 + var tickerLoop = function(resumeSpeed){
  946 + speed = resumeSpeed ? resumeSpeed : slider.settings.speed;
  947 + var position = {left: 0, top: 0};
  948 + var reset = {left: 0, top: 0};
  949 + // if "next" animate left position to last child, then reset left to 0
  950 + if(slider.settings.autoDirection == 'next'){
  951 + position = el.find('.bx-clone').first().position();
  952 + // if "prev" animate left position to 0, then reset left to first non-clone child
  953 + }else{
  954 + reset = slider.children.first().position();
  955 + }
  956 + var animateProperty = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
  957 + var resetValue = slider.settings.mode == 'horizontal' ? -reset.left : -reset.top;
  958 + var params = {resetValue: resetValue};
  959 + setPositionProperty(animateProperty, 'ticker', speed, params);
  960 + }
  961 +
  962 + /**
  963 + * Initializes touch events
  964 + */
  965 + var initTouch = function(){
  966 + // initialize object to contain all touch values
  967 + slider.touch = {
  968 + start: {x: 0, y: 0},
  969 + end: {x: 0, y: 0}
  970 + }
  971 + slider.viewport.bind('touchstart', onTouchStart);
  972 + }
  973 +
  974 + /**
  975 + * Event handler for "touchstart"
  976 + *
  977 + * @param e (event)
  978 + * - DOM event object
  979 + */
  980 + var onTouchStart = function(e){
  981 + if(slider.working){
  982 + e.preventDefault();
  983 + }else{
  984 + // record the original position when touch starts
  985 + slider.touch.originalPos = el.position();
  986 + var orig = e.originalEvent;
  987 + // record the starting touch x, y coordinates
  988 + slider.touch.start.x = orig.changedTouches[0].pageX;
  989 + slider.touch.start.y = orig.changedTouches[0].pageY;
  990 + // bind a "touchmove" event to the viewport
  991 + slider.viewport.bind('touchmove', onTouchMove);
  992 + // bind a "touchend" event to the viewport
  993 + slider.viewport.bind('touchend', onTouchEnd);
  994 + }
  995 + }
  996 +
  997 + /**
  998 + * Event handler for "touchmove"
  999 + *
  1000 + * @param e (event)
  1001 + * - DOM event object
  1002 + */
  1003 + var onTouchMove = function(e){
  1004 + var orig = e.originalEvent;
  1005 + // if scrolling on y axis, do not prevent default
  1006 + var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x);
  1007 + var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y);
  1008 + // x axis swipe
  1009 + if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){
  1010 + e.preventDefault();
  1011 + // y axis swipe
  1012 + }else if((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY){
  1013 + e.preventDefault();
  1014 + }
  1015 + if(slider.settings.mode != 'fade' && slider.settings.oneToOneTouch){
  1016 + var value = 0;
  1017 + // if horizontal, drag along x axis
  1018 + if(slider.settings.mode == 'horizontal'){
  1019 + var change = orig.changedTouches[0].pageX - slider.touch.start.x;
  1020 + value = slider.touch.originalPos.left + change;
  1021 + // if vertical, drag along y axis
  1022 + }else{
  1023 + var change = orig.changedTouches[0].pageY - slider.touch.start.y;
  1024 + value = slider.touch.originalPos.top + change;
  1025 + }
  1026 + setPositionProperty(value, 'reset', 0);
  1027 + }
  1028 + }
  1029 +
  1030 + /**
  1031 + * Event handler for "touchend"
  1032 + *
  1033 + * @param e (event)
  1034 + * - DOM event object
  1035 + */
  1036 + var onTouchEnd = function(e){
  1037 + slider.viewport.unbind('touchmove', onTouchMove);
  1038 + var orig = e.originalEvent;
  1039 + var value = 0;
  1040 + // record end x, y positions
  1041 + slider.touch.end.x = orig.changedTouches[0].pageX;
  1042 + slider.touch.end.y = orig.changedTouches[0].pageY;
  1043 + // if fade mode, check if absolute x distance clears the threshold
  1044 + if(slider.settings.mode == 'fade'){
  1045 + var distance = Math.abs(slider.touch.start.x - slider.touch.end.x);
  1046 + if(distance >= slider.settings.swipeThreshold){
  1047 + slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide() : el.goToPrevSlide();
  1048 + el.stopAuto();
  1049 + }
  1050 + // not fade mode
  1051 + }else{
  1052 + var distance = 0;
  1053 + // calculate distance and el's animate property
  1054 + if(slider.settings.mode == 'horizontal'){
  1055 + distance = slider.touch.end.x - slider.touch.start.x;
  1056 + value = slider.touch.originalPos.left;
  1057 + }else{
  1058 + distance = slider.touch.end.y - slider.touch.start.y;
  1059 + value = slider.touch.originalPos.top;
  1060 + }
  1061 + // if not infinite loop and first / last slide, do not attempt a slide transition
  1062 + if(!slider.settings.infiniteLoop && ((slider.active.index == 0 && distance > 0) || (slider.active.last && distance < 0))){
  1063 + setPositionProperty(value, 'reset', 200);
  1064 + }else{
  1065 + // check if distance clears threshold
  1066 + if(Math.abs(distance) >= slider.settings.swipeThreshold){
  1067 + distance < 0 ? el.goToNextSlide() : el.goToPrevSlide();
  1068 + el.stopAuto();
  1069 + }else{
  1070 + // el.animate(property, 200);
  1071 + setPositionProperty(value, 'reset', 200);
  1072 + }
  1073 + }
  1074 + }
  1075 + slider.viewport.unbind('touchend', onTouchEnd);
  1076 + }
  1077 +
  1078 + /**
  1079 + * Window resize event callback
  1080 + */
  1081 + var resizeWindow = function(e){
  1082 + // don't do anything if slider isn't initialized.
  1083 + if(!slider.initialized) return;
  1084 + // get the new window dimens (again, thank you IE)
  1085 + var windowWidthNew = $(window).width();
  1086 + var windowHeightNew = $(window).height();
  1087 + // make sure that it is a true window resize
  1088 + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements
  1089 + // are resized. Can you just die already?*
  1090 + if(windowWidth != windowWidthNew || windowHeight != windowHeightNew){
  1091 + // set the new window dimens
  1092 + windowWidth = windowWidthNew;
  1093 + windowHeight = windowHeightNew;
  1094 + // update all dynamic elements
  1095 + el.redrawSlider();
  1096 + // Call user resize handler
  1097 + slider.settings.onSliderResize.call(el, slider.active.index);
  1098 + }
  1099 + }
  1100 +
  1101 + /**
  1102 + * ===================================================================================
  1103 + * = PUBLIC FUNCTIONS
  1104 + * ===================================================================================
  1105 + */
  1106 +
  1107 + /**
  1108 + * Performs slide transition to the specified slide
  1109 + *
  1110 + * @param slideIndex (int)
  1111 + * - the destination slide's index (zero-based)
  1112 + *
  1113 + * @param direction (string)
  1114 + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next")
  1115 + */
  1116 + el.goToSlide = function(slideIndex, direction){
  1117 + // if plugin is currently in motion, ignore request
  1118 + if(slider.working || slider.active.index == slideIndex) return;
  1119 + // declare that plugin is in motion
  1120 + slider.working = true;
  1121 + // store the old index
  1122 + slider.oldIndex = slider.active.index;
  1123 + // if slideIndex is less than zero, set active index to last child (this happens during infinite loop)
  1124 + if(slideIndex < 0){
  1125 + slider.active.index = getPagerQty() - 1;
  1126 + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop)
  1127 + }else if(slideIndex >= getPagerQty()){
  1128 + slider.active.index = 0;
  1129 + // set active index to requested slide
  1130 + }else{
  1131 + slider.active.index = slideIndex;
  1132 + }
  1133 + // onSlideBefore, onSlideNext, onSlidePrev callbacks
  1134 + slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
  1135 + if(direction == 'next'){
  1136 + slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
  1137 + }else if(direction == 'prev'){
  1138 + slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
  1139 + }
  1140 + // check if last slide
  1141 + slider.active.last = slider.active.index >= getPagerQty() - 1;
  1142 + // update the pager with active class
  1143 + if(slider.settings.pager) updatePagerActive(slider.active.index);
  1144 + // // check for direction control update
  1145 + if(slider.settings.controls) updateDirectionControls();
  1146 + // if slider is set to mode: "fade"
  1147 + if(slider.settings.mode == 'fade'){
  1148 + // if adaptiveHeight is true and next height is different from current height, animate to the new height
  1149 + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
  1150 + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
  1151 + }
  1152 + // fade out the visible child and reset its z-index value
  1153 + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0});
  1154 + // fade in the newly requested slide
  1155 + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex+1).fadeIn(slider.settings.speed, function(){
  1156 + $(this).css('zIndex', slider.settings.slideZIndex);
  1157 + updateAfterSlideTransition();
  1158 + });
  1159 + // slider mode is not "fade"
  1160 + }else{
  1161 + // if adaptiveHeight is true and next height is different from current height, animate to the new height
  1162 + if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
  1163 + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
  1164 + }
  1165 + var moveBy = 0;
  1166 + var position = {left: 0, top: 0};
  1167 + // if carousel and not infinite loop
  1168 + if(!slider.settings.infiniteLoop && slider.carousel && slider.active.last){
  1169 + if(slider.settings.mode == 'horizontal'){
  1170 + // get the last child position
  1171 + var lastChild = slider.children.eq(slider.children.length - 1);
  1172 + position = lastChild.position();
  1173 + // calculate the position of the last slide
  1174 + moveBy = slider.viewport.width() - lastChild.outerWidth();
  1175 + }else{
  1176 + // get last showing index position
  1177 + var lastShowingIndex = slider.children.length - slider.settings.minSlides;
  1178 + position = slider.children.eq(lastShowingIndex).position();
  1179 + }
  1180 + // horizontal carousel, going previous while on first slide (infiniteLoop mode)
  1181 + }else if(slider.carousel && slider.active.last && direction == 'prev'){
  1182 + // get the last child position
  1183 + var eq = slider.settings.moveSlides == 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides);
  1184 + var lastChild = el.children('.bx-clone').eq(eq);
  1185 + position = lastChild.position();
  1186 + // if infinite loop and "Next" is clicked on the last slide
  1187 + }else if(direction == 'next' && slider.active.index == 0){
  1188 + // get the last clone position
  1189 + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position();
  1190 + slider.active.last = false;
  1191 + // normal non-zero requests
  1192 + }else if(slideIndex >= 0){
  1193 + var requestEl = slideIndex * getMoveBy();
  1194 + position = slider.children.eq(requestEl).position();
  1195 + }
  1196 +
  1197 + /* If the position doesn't exist
  1198 + * (e.g. if you destroy the slider on a next click),
  1199 + * it doesn't throw an error.
  1200 + */
  1201 + if ("undefined" !== typeof(position)) {
  1202 + var value = slider.settings.mode == 'horizontal' ? -(position.left - moveBy) : -position.top;
  1203 + // plugin values to be animated
  1204 + setPositionProperty(value, 'slide', slider.settings.speed);
  1205 + }
  1206 + }
  1207 + }
  1208 +
  1209 + /**
  1210 + * Transitions to the next slide in the show
  1211 + */
  1212 + el.goToNextSlide = function(){
  1213 + // if infiniteLoop is false and last page is showing, disregard call
  1214 + if (!slider.settings.infiniteLoop && slider.active.last) return;
  1215 + var pagerIndex = parseInt(slider.active.index) + 1;
  1216 + el.goToSlide(pagerIndex, 'next');
  1217 + }
  1218 +
  1219 + /**
  1220 + * Transitions to the prev slide in the show
  1221 + */
  1222 + el.goToPrevSlide = function(){
  1223 + // if infiniteLoop is false and last page is showing, disregard call
  1224 + if (!slider.settings.infiniteLoop && slider.active.index == 0) return;
  1225 + var pagerIndex = parseInt(slider.active.index) - 1;
  1226 + el.goToSlide(pagerIndex, 'prev');
  1227 + }
  1228 +
  1229 + /**
  1230 + * Starts the auto show
  1231 + *
  1232 + * @param preventControlUpdate (boolean)
  1233 + * - if true, auto controls state will not be updated
  1234 + */
  1235 + el.startAuto = function(preventControlUpdate){
  1236 + // if an interval already exists, disregard call
  1237 + if(slider.interval) return;
  1238 + // create an interval
  1239 + slider.interval = setInterval(function(){
  1240 + slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
  1241 + }, slider.settings.pause);
  1242 + // if auto controls are displayed and preventControlUpdate is not true
  1243 + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop');
  1244 + }
  1245 +
  1246 + /**
  1247 + * Stops the auto show
  1248 + *
  1249 + * @param preventControlUpdate (boolean)
  1250 + * - if true, auto controls state will not be updated
  1251 + */
  1252 + el.stopAuto = function(preventControlUpdate){
  1253 + // if no interval exists, disregard call
  1254 + if(!slider.interval) return;
  1255 + // clear the interval
  1256 + clearInterval(slider.interval);
  1257 + slider.interval = null;
  1258 + // if auto controls are displayed and preventControlUpdate is not true
  1259 + if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('start');
  1260 + }
  1261 +
  1262 + /**
  1263 + * Returns current slide index (zero-based)
  1264 + */
  1265 + el.getCurrentSlide = function(){
  1266 + return slider.active.index;
  1267 + }
  1268 +
  1269 + /**
  1270 + * Returns current slide element
  1271 + */
  1272 + el.getCurrentSlideElement = function(){
  1273 + return slider.children.eq(slider.active.index);
  1274 + }
  1275 +
  1276 + /**
  1277 + * Returns number of slides in show
  1278 + */
  1279 + el.getSlideCount = function(){
  1280 + return slider.children.length;
  1281 + }
  1282 +
  1283 + /**
  1284 + * Update all dynamic slider elements
  1285 + */
  1286 + el.redrawSlider = function(){
  1287 + // resize all children in ratio to new screen size
  1288 + slider.children.add(el.find('.bx-clone')).width(getSlideWidth());
  1289 + // adjust the height
  1290 + slider.viewport.css('height', getViewportHeight());
  1291 + // update the slide position
  1292 + if(!slider.settings.ticker) setSlidePosition();
  1293 + // if active.last was true before the screen resize, we want
  1294 + // to keep it last no matter what screen size we end on
  1295 + if (slider.active.last) slider.active.index = getPagerQty() - 1;
  1296 + // if the active index (page) no longer exists due to the resize, simply set the index as last
  1297 + if (slider.active.index >= getPagerQty()) slider.active.last = true;
  1298 + // if a pager is being displayed and a custom pager is not being used, update it
  1299 + if(slider.settings.pager && !slider.settings.pagerCustom){
  1300 + populatePager();
  1301 + updatePagerActive(slider.active.index);
  1302 + }
  1303 + }
  1304 +
  1305 + /**
  1306 + * Destroy the current instance of the slider (revert everything back to original state)
  1307 + */
  1308 + el.destroySlider = function(){
  1309 + // don't do anything if slider has already been destroyed
  1310 + if(!slider.initialized) return;
  1311 + slider.initialized = false;
  1312 + $('.bx-clone', this).remove();
  1313 + slider.children.each(function() {
  1314 + $(this).data("origStyle") != undefined ? $(this).attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
  1315 + });
  1316 + $(this).data("origStyle") != undefined ? this.attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
  1317 + $(this).unwrap().unwrap();
  1318 + if(slider.controls.el) slider.controls.el.remove();
  1319 + if(slider.controls.next) slider.controls.next.remove();
  1320 + if(slider.controls.prev) slider.controls.prev.remove();
  1321 + if(slider.pagerEl && slider.settings.controls) slider.pagerEl.remove();
  1322 + $('.bx-caption', this).remove();
  1323 + if(slider.controls.autoEl) slider.controls.autoEl.remove();
  1324 + clearInterval(slider.interval);
  1325 + if(slider.settings.responsive) $(window).unbind('resize', resizeWindow);
  1326 + }
  1327 +
  1328 + /**
  1329 + * Reload the slider (revert all DOM changes, and re-initialize)
  1330 + */
  1331 + el.reloadSlider = function(settings){
  1332 + if (settings != undefined) options = settings;
  1333 + el.destroySlider();
  1334 + init();
  1335 + }
  1336 +
  1337 + init();
  1338 +
  1339 + // returns the current jQuery object
  1340 + return this;
  1341 + }
  1342 +
  1343 +})(jQuery);
@@ -23,6 +23,10 @@ import SignApe from "ape/SignApe"; @@ -23,6 +23,10 @@ import SignApe from "ape/SignApe";
23 import localConfig from "local/localConfig"; 23 import localConfig from "local/localConfig";
24 import UIMagnifyApe from "ape/UIMagnifyApe"; 24 import UIMagnifyApe from "ape/UIMagnifyApe";
25 import ErrorApe from 'ape/ErrorApe'; 25 import ErrorApe from 'ape/ErrorApe';
  26 +import Slideshow from 'ape/Slideshow';//图片轮播
  27 +import LoginOrRegister from 'ape/LoginOrRegister';//登录注册
  28 +import LanclassApe from 'ape/LanclassApe';//互动课堂
  29 +import HomeApe from 'ape/HomeApe';//首页
26 30
27 let loger = Loger.getLoger('PCLive'); 31 let loger = Loger.getLoger('PCLive');
28 32
@@ -39,6 +43,9 @@ let _musicShareApe; @@ -39,6 +43,9 @@ let _musicShareApe;
39 43
40 let _answerApe; 44 let _answerApe;
41 let _signApe; 45 let _signApe;
  46 +let _loginOrRegister;
  47 +let _lanclassApe;
  48 +let _homeApe;
42 49
43 class Main { 50 class Main {
44 constructor() { 51 constructor() {
@@ -66,13 +73,11 @@ class Main { @@ -66,13 +73,11 @@ class Main {
66 loger.log("urlParams", urlParams); 73 loger.log("urlParams", urlParams);
67 if (urlParams) { 74 if (urlParams) {
68 ClassDataProxy.classId = parseInt(urlParams.classId) || 0; 75 ClassDataProxy.classId = parseInt(urlParams.classId) || 0;
69 - //let userName = urlParams.userName || "user_" + (new Date().getTime() % 1000000); 76 +
70 let userName = urlParams.userName || ""; 77 let userName = urlParams.userName || "";
71 ClassDataProxy.userName = decodeURI(userName); 78 ClassDataProxy.userName = decodeURI(userName);
72 ClassDataProxy.userId = urlParams.userId || userName; 79 ClassDataProxy.userId = urlParams.userId || userName;
73 - /*if(!ClassDataProxy.userId||ClassDataProxy.userId=="0"){  
74 - ClassDataProxy.userId=userName;  
75 - }*/ 80 +
76 ClassDataProxy.userRole = urlParams.userRole || "normal"; 81 ClassDataProxy.userRole = urlParams.userRole || "normal";
77 ClassDataProxy.isRecordPlayBack = Boolean(urlParams.playRecord); 82 ClassDataProxy.isRecordPlayBack = Boolean(urlParams.playRecord);
78 ClassDataProxy.autoLogin = urlParams.m || 0; 83 ClassDataProxy.autoLogin = urlParams.m || 0;
@@ -123,50 +128,58 @@ class Main { @@ -123,50 +128,58 @@ class Main {
123 128
124 //创建模块 129 //创建模块
125 //课堂模块 130 //课堂模块
126 - _classApe = new ClassApe();  
127 - _classApe.on(ClassApe.CLASS_STOP_MEDIA_PUBLISH, this._onClassStopMediaPublishHandler.bind(this)); 131 + // _classApe = new ClassApe();
  132 + // _classApe.on(ClassApe.CLASS_STOP_MEDIA_PUBLISH, this._onClassStopMediaPublishHandler.bind(this));
128 133
129 //答题卡模块 134 //答题卡模块
130 - _answerApe = new AnswerApe(); 135 + // _answerApe = new AnswerApe();
131 //签到模块 136 //签到模块
132 - _signApe = new SignApe(); 137 + // _signApe = new SignApe();
133 138
134 //聊天模块 139 //聊天模块
135 - _chatApe = new ChatApe();  
136 - _chatApe.on(UserList.WINDOW_VIEW_CHANGE, this.onWindowViewChange.bind(this));//监听用户列表模块布局发生改变,文档模块的大小需要调整 140 + // _chatApe = new ChatApe();
  141 + // _chatApe.on(UserList.WINDOW_VIEW_CHANGE, this.onWindowViewChange.bind(this));//监听用户列表模块布局发生改变,文档模块的大小需要调整
137 142
138 //音频模块 143 //音频模块
139 //_audioApe = new AudioApe(); 144 //_audioApe = new AudioApe();
140 //文档模块 145 //文档模块
141 - _docApe = new DocApe();  
142 - _docApe.on(DocApe.DOC_IMAGE_LOAD, this._docImageLoadHandler.bind(this));  
143 - _docApe.on(DocApe.SCENE_DOC_CHANGE, this._onSceneChangeHandler.bind(this)); 146 + // _docApe = new DocApe();
  147 + // _docApe.on(DocApe.DOC_IMAGE_LOAD, this._docImageLoadHandler.bind(this));
  148 + // _docApe.on(DocApe.SCENE_DOC_CHANGE, this._onSceneChangeHandler.bind(this));
144 149
145 //标注模块 150 //标注模块
146 - _whiteBoardApe = new WhiteBoardApe(); 151 + // _whiteBoardApe = new WhiteBoardApe();
147 //激光笔模块 152 //激光笔模块
148 - _laserPen = new LaserPen(); 153 + // _laserPen = new LaserPen();
149 //录制回放模块 154 //录制回放模块
150 - _recordReplayApe = new RecordReplayApe();  
151 - _recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_PLAY, this._onRecordReplayPlayHandler.bind(this));  
152 - _recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_SEEK, this._onRecordReplaySeekHandler.bind(this));  
153 - _recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_PAUSE, this._onRecordReplayPauseHandler.bind(this));  
154 - _recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_STOP, this._onRecordReplayStopHandler.bind(this)); 155 + //_recordReplayApe = new RecordReplayApe();
  156 + //_recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_PLAY, this._onRecordReplayPlayHandler.bind(this));
  157 + //_recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_SEEK, this._onRecordReplaySeekHandler.bind(this));
  158 + //_recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_PAUSE, this._onRecordReplayPauseHandler.bind(this));
  159 + //_recordReplayApe.on(RecordReplayApe.RECORD_REPLAY_STOP, this._onRecordReplayStopHandler.bind(this));
155 160
156 - _screenShareApe = new ScreenShareApe();  
157 - _screenShareApe.on(ScreenShareApe.SCENE_SCREEN_SHARE_CHANGE, this._onSceneChangeHandler.bind(this)); 161 + //_screenShareApe = new ScreenShareApe();
  162 + //_screenShareApe.on(ScreenShareApe.SCENE_SCREEN_SHARE_CHANGE, this._onSceneChangeHandler.bind(this));
158 163
159 - _mediaShareApe = new MediaShareApe();  
160 - _mediaShareApe.on(MediaShareApe.SCENE_MEDIA_SHARE_CHANGE, this._onSceneChangeHandler.bind(this)); 164 + // _mediaShareApe = new MediaShareApe();
  165 + // _mediaShareApe.on(MediaShareApe.SCENE_MEDIA_SHARE_CHANGE, this._onSceneChangeHandler.bind(this));
161 166
162 // _musicShareApe = new MusicShareApe(); 167 // _musicShareApe = new MusicShareApe();
163 // _musicShareApe.on(MusicShareApe.SCENE_MUSIC_SHARE_CHANGE, this._onSceneChangeHandler.bind(this)); 168 // _musicShareApe.on(MusicShareApe.SCENE_MUSIC_SHARE_CHANGE, this._onSceneChangeHandler.bind(this));
164 - _musicShareApe = new MusicShareApeTwo();  
165 - _musicShareApe.on(MusicShareApeTwo.SCENE_MUSIC_SHARE_CHANGE, this._onSceneChangeHandler.bind(this));  
166 - //视频模块  
167 - _mediaManagerApe = new MediaManagerApe();  
168 - _mediaManagerApe.on(MediaManagerApe.FLASH_LOADED, this._onFlashLoaded.bind(this)); 169 + // _musicShareApe = new MusicShareApeTwo();
  170 + // _musicShareApe.on(MusicShareApeTwo.SCENE_MUSIC_SHARE_CHANGE, this._onSceneChangeHandler.bind(this));
  171 + ///视频模块
  172 + // _mediaManagerApe = new MediaManagerApe();
  173 + // _mediaManagerApe.on(MediaManagerApe.FLASH_LOADED, this._onFlashLoaded.bind(this));
169 //_mediaManagerApe.startLoadFlashTools(); 174 //_mediaManagerApe.startLoadFlashTools();
  175 +
  176 + //登录注册
  177 + _loginOrRegister = new LoginOrRegister();
  178 + //互动课堂
  179 + _lanclassApe = new LanclassApe();
  180 + //首页
  181 + _homeApe = new HomeApe();
  182 +
170 this._onFlashLoaded(); 183 this._onFlashLoaded();
171 } 184 }
172 185