kf5 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50231b0a61f410d1d4d532d091b04927d9b275c4
4
- data.tar.gz: fe9f484fd4ae97eb4443e6aceb07b9663933d411
3
+ metadata.gz: a37d016acb7b368be42ddba7b061c5a7b60ef871
4
+ data.tar.gz: bd1a96be69ea75a75893dcd5dca8f4e5a5ce6c40
5
5
  SHA512:
6
- metadata.gz: 032f67d39110a4cdc78ad65855b2d74c5b4dfc4d544ce67858fab624fef3533ef3056e0437613aa8d98a0dc400cae945401c8bc3805a2b4d16bd4148921feca4
7
- data.tar.gz: 1b741f647529dee6eb897ea7392937d319edb2f3487efaddf6876f169f135474cd0a114bc0e62a7a447bc811c6bf8eb123d3dd1d1e5867393fd57db50aada80e
6
+ metadata.gz: 89fd394684e5e7866c227ce912193b7d8aa4432ed98a535121bd7df0332e02ad2fd23c99f2dde6238fcdcd526dc3f9d5c18a0d4acfc5c6a43e93887dd89fde2e
7
+ data.tar.gz: 39d42976e766e536374ea9cdeb2b1ebd821c1722fea8569b60e04ef47106262520aded37e8ffc5820355569fb969dee1b114b3e95671cb5ce67163f330e07eef
@@ -1,3 +1,7 @@
1
+ # v0.2.1 / 2015-09-22
2
+
3
+ * update kf5.js
4
+
1
5
  # v0.2.0 / 2015-09-19
2
6
 
3
7
  * add embedded javascript plugin.
@@ -16,7 +16,7 @@
16
16
  iframeURL : '//' + kf5Domain + '/supportbox/index',
17
17
  btn_icon : '//assets.kf5.com/supportbox/images/icon2.png',
18
18
  styleURL : '//assets.kf5.com/supportbox/css/btn.css',
19
- template : '<div id="kw-tab" class="kf5-support-btn" style="{{bg_color}}"> <img src="{{btn_icon}}" alt=""><span>{{title}}</span> </div> <div id="kw-block" class="kf5-support"> <a id="kw-close" class="kf5-close" title="关闭"><i class="icon-clear"></i></a> <div id="kw-loading" class="kf5-loading"> </div> <iframe id="kw-widget-iframe" src="" scrolling="no" frameborder="0"></iframe> </div>'
19
+ template : '<div id="kw-tab" class="kf5-support-btn" style="{{bg_color}}"> <img src="{{btn_icon}}" alt=""><span>{{title}}</span> </div> <div id="kw-block" class="kf5-support"> <a id="kw-close" class="kf5-close" title="关闭"><i class="kf5-icon-clear"></i></a> <div id="kw-loading" class="kf5-loading"> </div> <iframe id="kw-widget-iframe" src="" scrolling="no" frameborder="0"></iframe> </div>'
20
20
  };
21
21
 
22
22
  function KF5SupportBox(config)
@@ -116,6 +116,7 @@
116
116
 
117
117
  this.el = window.document.createElement('div');
118
118
  this.el.setAttribute('class', className);
119
+ this.el.setAttribute('id', 'kf5-support-123456789');
119
120
  this.el.innerHTML = this.getOpt('template')
120
121
  .replace('{{title}}', this.getOpt('btn_name') || '获取帮助')
121
122
  .replace('{{btn_icon}}', this.getOpt('btn_icon'))
@@ -180,11 +181,11 @@
180
181
  {
181
182
  if(!this.isOpened)
182
183
  {
183
- hideElement(this.getElement('#kw-tab'));
184
+ var self = this;
184
185
 
185
186
  this.loadIframe();
186
- // slideUp(this.getElement('#kw-widget-iframe'), 400);
187
- slideUp(this.getElement('#kw-block'), 400);
187
+ slideDown(this.getElement('#kw-tab'), {duration: 200, easing: 'swing'});
188
+ slideUp(self.getElement('#kw-block'), {duration: 200, easing: 'swing'});
188
189
 
189
190
  cookie('kf5-supportBox-autoOpen', 1, {expires: 3 / 24, path: '/'});
190
191
 
@@ -194,11 +195,27 @@
194
195
 
195
196
  close: function(e)
196
197
  {
197
- // slideDown(this.getElement('#kw-widget-iframe'), 400);
198
- slideDown(this.getElement('#kw-block'), 400);
198
+ // slideDown(this.getElement('#kw-block'), 200);
199
+ // showElement(this.getElement('#kw-tab'));
200
+ var self = this;
199
201
 
200
- showElement(this.getElement('#kw-tab'));
201
- // this.getElement('#kw-widget-iframe').setAttribute('src', '');
202
+ slideDown(
203
+ this.getElement('#kw-block'),
204
+ {
205
+ duration: 200,
206
+ easing: 'swing',
207
+ callback: function()
208
+ {
209
+ slideUp(
210
+ self.getElement('#kw-tab'),
211
+ {
212
+ duration: 200,
213
+ easing: 'swing'
214
+ }
215
+ );
216
+ }
217
+ }
218
+ );
202
219
 
203
220
  cookie('kf5-supportBox-autoOpen', null, {path: '/'});
204
221
 
@@ -209,6 +226,11 @@
209
226
  var supportbox;
210
227
  function onload()
211
228
  {
229
+ // if(supportbox)
230
+ // {
231
+ // return;
232
+ // }
233
+
212
234
  var script = window.document.createElement('script'),
213
235
  configURL = supportboxConfigURL;
214
236
 
@@ -230,6 +252,12 @@
230
252
  document.addEventListener('page:load', onload, false);
231
253
  window.addEventListener('load', onload, false);
232
254
 
255
+ if(!window.initializeKF5SupportBox)
256
+ {
257
+ // 暴露初始化方法,以解决特殊情况下load事件无法触发
258
+ window.initializeKF5SupportBox = onload;
259
+ }
260
+
233
261
  // allow cross origin operation
234
262
  window.addEventListener('message', function(e)
235
263
  {
@@ -417,7 +445,20 @@
417
445
  return curCSS && curCSS(el, style);
418
446
  }
419
447
 
420
- function slideUp(elem, duration)
448
+ var easing = {
449
+
450
+ swing: function(p)
451
+ {
452
+ return 0.5 - Math.cos( p * Math.PI ) / 2;
453
+ },
454
+
455
+ linear: function(p)
456
+ {
457
+ return p;
458
+ }
459
+ };
460
+
461
+ function slideUp(elem, options)
421
462
  {
422
463
  var originalStyle = elem.getAttribute('style');
423
464
  elem.style.display = 'block';
@@ -425,17 +466,18 @@
425
466
 
426
467
  elem.style.height = '0px';
427
468
 
428
- duration = duration || 500;
469
+ var duration = options.duration || 500;
429
470
  var tStart = Date.now(),
430
- cost = 0,
471
+ percent = 0,
431
472
  timer = setInterval(function()
432
473
  {
433
- cost = (Date.now() - tStart) / duration;
434
- cost = cost > 1 ? 1 : cost;
474
+ percent = (Date.now() - tStart) / duration;
475
+ percent = percent > 1 ? 1 : percent;
435
476
 
436
- elem.style.height = cost * originalHeight + 'px';
477
+ elem.style.height = (easing[options.easing || 'swing'](percent)
478
+ * originalHeight) + 'px';
437
479
 
438
- if(cost >= 1)
480
+ if(percent >= 1)
439
481
  {
440
482
  clearInterval(timer);
441
483
  timer = null;
@@ -449,28 +491,31 @@
449
491
  elem.removeAttribute('style');
450
492
  }
451
493
  elem.style.display = 'block';
494
+
495
+ options.callback && options.callback.call(elem);
452
496
  }
453
497
  }, 1000 / 60);
454
498
  }
455
499
 
456
- function slideDown(elem, duration)
500
+ function slideDown(elem, options)
457
501
  {
458
502
  var originalStyle = elem.getAttribute('style');
459
503
  elem.style.display = 'block';
460
504
 
461
505
  var originalHeight = parseInt(getStyle(elem, 'height'));
462
506
 
463
- duration = duration || 500;
507
+ var duration = options.duration || 500;
464
508
  var tStart = Date.now(),
465
- cost = 0,
509
+ percent = 0,
466
510
  timer = setInterval(function()
467
511
  {
468
- cost = (Date.now() - tStart) / duration;
469
- cost = cost > 1 ? 1 : cost;
512
+ percent = (Date.now() - tStart) / duration;
513
+ percent = percent > 1 ? 1 : percent;
470
514
 
471
- elem.style.height = (1 - cost) * originalHeight + 'px';
515
+ elem.style.height = (easing[options.easing || 'swing'](1 - percent)
516
+ * originalHeight) + 'px';
472
517
 
473
- if(cost >= 1)
518
+ if(percent >= 1)
474
519
  {
475
520
  clearInterval(timer);
476
521
  timer = null;
@@ -484,6 +529,8 @@
484
529
  elem.removeAttribute('style');
485
530
  }
486
531
  elem.style.display = 'none';
532
+
533
+ options.callback && options.callback.call(elem);
487
534
  }
488
535
  }, 1000 / 60);
489
536
  }
@@ -1,3 +1,3 @@
1
1
  module KF5
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kf5
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chen Yi-Cyuan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-19 00:00:00.000000000 Z
11
+ date: 2015-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler