semantic-ui-sass 1.12.3.0 → 2.0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/app/assets/javascripts/semantic-ui.js +1 -0
  4. data/app/assets/javascripts/semantic-ui/accordion.js +67 -53
  5. data/app/assets/javascripts/semantic-ui/api.js +395 -189
  6. data/app/assets/javascripts/semantic-ui/checkbox.js +322 -114
  7. data/app/assets/javascripts/semantic-ui/colorize.js +4 -2
  8. data/app/assets/javascripts/semantic-ui/dimmer.js +74 -50
  9. data/app/assets/javascripts/semantic-ui/dropdown.js +2046 -584
  10. data/app/assets/javascripts/semantic-ui/embed.js +662 -0
  11. data/app/assets/javascripts/semantic-ui/form.js +345 -163
  12. data/app/assets/javascripts/semantic-ui/modal.js +119 -90
  13. data/app/assets/javascripts/semantic-ui/nag.js +8 -9
  14. data/app/assets/javascripts/semantic-ui/popup.js +390 -228
  15. data/app/assets/javascripts/semantic-ui/progress.js +112 -103
  16. data/app/assets/javascripts/semantic-ui/rating.js +79 -55
  17. data/app/assets/javascripts/semantic-ui/search.js +305 -123
  18. data/app/assets/javascripts/semantic-ui/shape.js +94 -48
  19. data/app/assets/javascripts/semantic-ui/sidebar.js +84 -151
  20. data/app/assets/javascripts/semantic-ui/site.js +5 -5
  21. data/app/assets/javascripts/semantic-ui/state.js +4 -4
  22. data/app/assets/javascripts/semantic-ui/sticky.js +108 -35
  23. data/app/assets/javascripts/semantic-ui/tab.js +220 -125
  24. data/app/assets/javascripts/semantic-ui/transition.js +205 -171
  25. data/app/assets/javascripts/semantic-ui/visibility.js +220 -100
  26. data/app/assets/javascripts/semantic-ui/visit.js +6 -4
  27. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +17 -16
  28. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +223 -121
  29. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +462 -448
  30. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +949 -665
  31. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +134 -92
  32. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +270 -208
  33. data/app/assets/stylesheets/semantic-ui/elements/_all.scss +1 -0
  34. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +1357 -521
  35. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +125 -0
  36. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +51 -31
  37. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +3 -3
  38. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +270 -144
  39. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +241 -110
  40. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +30 -16
  41. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +88 -53
  42. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +432 -281
  43. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +172 -128
  44. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +16 -14
  45. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +15 -7
  46. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +32 -13
  47. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +329 -212
  48. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +291 -99
  49. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +2 -2
  50. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +19 -18
  51. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +17 -18
  52. data/app/assets/stylesheets/semantic-ui/modules/_all.scss +1 -0
  53. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +265 -161
  54. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +29 -15
  55. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +441 -156
  56. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +168 -0
  57. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +163 -85
  58. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +8 -8
  59. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +88 -23
  60. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +185 -129
  61. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +75 -60
  62. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +99 -52
  63. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +11 -11
  64. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +16 -12
  65. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +4 -4
  66. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +3 -3
  67. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +31 -39
  68. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +3 -3
  69. data/app/assets/stylesheets/semantic-ui/views/_all.scss +1 -0
  70. data/app/assets/stylesheets/semantic-ui/views/_card.scss +204 -162
  71. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +6 -6
  72. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +51 -26
  73. data/app/assets/stylesheets/semantic-ui/views/_item.scss +62 -36
  74. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +265 -90
  75. data/lib/semantic/ui/sass/version.rb +2 -2
  76. data/semantic-ui-sass.gemspec +2 -2
  77. metadata +9 -6
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * # Semantic UI 1.12.3 - Visibility
2
+ * # Semantic UI - Visibility
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2014 Contributors
6
+ * Copyright 2015 Contributors
7
7
  * Released under the MIT license
8
8
  * http://opensource.org/licenses/MIT
9
9
  *
@@ -37,6 +37,7 @@ $.fn.visibility = function(parameters) {
37
37
  className = settings.className,
38
38
  namespace = settings.namespace,
39
39
  error = settings.error,
40
+ metadata = settings.metadata,
40
41
 
41
42
  eventNamespace = '.' + namespace,
42
43
  moduleNamespace = 'module-' + namespace,
@@ -45,8 +46,10 @@ $.fn.visibility = function(parameters) {
45
46
 
46
47
  $module = $(this),
47
48
  $context = $(settings.context),
48
- selector = $module.selector || '',
49
49
 
50
+ $placeholder,
51
+
52
+ selector = $module.selector || '',
50
53
  instance = $module.data(moduleNamespace),
51
54
 
52
55
  requestAnimationFrame = window.requestAnimationFrame
@@ -56,6 +59,8 @@ $.fn.visibility = function(parameters) {
56
59
  || function(callback) { setTimeout(callback, 0); },
57
60
 
58
61
  element = this,
62
+ disabled = false,
63
+
59
64
  observer,
60
65
  module
61
66
  ;
@@ -66,23 +71,27 @@ $.fn.visibility = function(parameters) {
66
71
  module.debug('Initializing', settings);
67
72
 
68
73
  module.setup.cache();
69
- module.save.position();
70
74
 
71
75
  if( module.should.trackChanges() ) {
72
- module.bind.events();
76
+
73
77
  if(settings.type == 'image') {
74
78
  module.setup.image();
75
79
  }
76
80
  if(settings.type == 'fixed') {
77
81
  module.setup.fixed();
78
82
  }
83
+
79
84
  if(settings.observeChanges) {
80
85
  module.observeChanges();
81
86
  }
82
- if( !module.is.visible() ) {
83
- module.error(error.visible, $module);
84
- }
87
+ module.bind.events();
85
88
  }
89
+
90
+ module.save.position();
91
+ if( !module.is.visible() ) {
92
+ module.error(error.visible, $module);
93
+ }
94
+
86
95
  if(settings.initialCheck) {
87
96
  module.checkVisibility();
88
97
  }
@@ -103,10 +112,12 @@ $.fn.visibility = function(parameters) {
103
112
  observer.disconnect();
104
113
  }
105
114
  $window
106
- .off('load' + eventNamespace, module.event.load)
115
+ .off('load' + eventNamespace, module.event.load)
107
116
  .off('resize' + eventNamespace, module.event.resize)
108
117
  ;
109
- $context.off('scrollchange' + eventNamespace, module.event.scrollchange);
118
+ $context
119
+ .off('scrollchange' + eventNamespace, module.event.scrollchange)
120
+ ;
110
121
  $module
111
122
  .off(eventNamespace)
112
123
  .removeData(moduleNamespace)
@@ -114,9 +125,6 @@ $.fn.visibility = function(parameters) {
114
125
  },
115
126
 
116
127
  observeChanges: function() {
117
- var
118
- context = $context[0]
119
- ;
120
128
  if('MutationObserver' in window) {
121
129
  observer = new MutationObserver(function(mutations) {
122
130
  module.verbose('DOM tree modified, updating visibility calculations');
@@ -136,55 +144,29 @@ $.fn.visibility = function(parameters) {
136
144
  bind: {
137
145
  events: function() {
138
146
  module.verbose('Binding visibility events to scroll and resize');
147
+ if(settings.refreshOnLoad) {
148
+ $window
149
+ .on('load' + eventNamespace, module.event.load)
150
+ ;
151
+ }
139
152
  $window
140
- .on('load' + eventNamespace, module.event.load)
141
153
  .on('resize' + eventNamespace, module.event.resize)
142
154
  ;
143
155
  // pub/sub pattern
144
156
  $context
145
- .off('scroll' + eventNamespace)
146
- .on('scroll' + eventNamespace, module.event.scroll)
157
+ .off('scroll' + eventNamespace)
158
+ .on('scroll' + eventNamespace, module.event.scroll)
147
159
  .on('scrollchange' + eventNamespace, module.event.scrollchange)
148
160
  ;
149
- },
150
- imageLoad: function() {
151
- var
152
- $images = $module.find('img'),
153
- imageCount = $images.length,
154
- index = imageCount,
155
- loadedCount = 0,
156
- images = [],
157
- cache = [],
158
- cacheImage = document.createElement('img'),
159
- handleLoad = function() {
160
- loadedCount++;
161
- if(loadedCount >= imageCount) {
162
- module.debug('Images finished loading inside element, refreshing position');
163
- module.refresh();
164
- }
165
- }
166
- ;
167
- if(imageCount > 0) {
168
- $images
169
- .each(function() {
170
- images.push( $(this).attr('src') );
171
- })
172
- ;
173
- while(index--) {
174
- cacheImage = document.createElement('img');
175
- cacheImage.onload = handleLoad;
176
- cacheImage.onerror = handleLoad;
177
- cacheImage.src = images[index];
178
- cache.push(cacheImage);
179
- }
180
- }
181
161
  }
182
162
  },
183
163
 
184
164
  event: {
185
165
  resize: function() {
186
166
  module.debug('Window resized');
187
- requestAnimationFrame(module.refresh);
167
+ if(settings.refreshOnResize) {
168
+ requestAnimationFrame(module.refresh);
169
+ }
188
170
  },
189
171
  load: function() {
190
172
  module.debug('Page finished loading');
@@ -195,12 +177,12 @@ $.fn.visibility = function(parameters) {
195
177
  if(settings.throttle) {
196
178
  clearTimeout(module.timer);
197
179
  module.timer = setTimeout(function() {
198
- $context.trigger('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
180
+ $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
199
181
  }, settings.throttle);
200
182
  }
201
183
  else {
202
184
  requestAnimationFrame(function() {
203
- $context.trigger('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
185
+ $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]);
204
186
  });
205
187
  }
206
188
  },
@@ -237,6 +219,16 @@ $.fn.visibility = function(parameters) {
237
219
  }
238
220
  },
239
221
 
222
+ enableCallbacks: function() {
223
+ module.debug('Allowing callbacks to occur');
224
+ disabled = false;
225
+ },
226
+
227
+ disableCallbacks: function() {
228
+ module.debug('Disabling all callbacks temporarily');
229
+ disabled = true;
230
+ },
231
+
240
232
  should: {
241
233
  trackChanges: function() {
242
234
  if(methodInvoked) {
@@ -258,31 +250,37 @@ $.fn.visibility = function(parameters) {
258
250
  },
259
251
  image: function() {
260
252
  var
261
- src = $module.data('src')
253
+ src = $module.data(metadata.src)
262
254
  ;
263
255
  if(src) {
264
256
  module.verbose('Lazy loading image', src);
257
+ settings.once = true;
265
258
  settings.observeChanges = false;
259
+
266
260
  // show when top visible
267
- module.topVisible(function() {
268
- module.debug('Image top visible', element);
261
+ settings.onOnScreen = function() {
262
+ module.debug('Image on screen', element);
269
263
  module.precache(src, function() {
270
264
  module.set.image(src);
271
- settings.onTopVisible = false;
272
265
  });
273
- });
266
+ };
274
267
  }
275
268
  },
276
269
  fixed: function() {
277
- module.verbose('Setting up fixed on element pass');
278
- settings.once = false;
270
+ module.debug('Setting up fixed');
271
+ settings.once = false;
272
+ settings.observeChanges = false;
273
+ settings.initialCheck = true;
274
+ settings.refreshOnLoad = true;
275
+ if(!parameters.transition) {
276
+ settings.transition = false;
277
+ }
278
+ module.create.placeholder();
279
+ module.debug('Added placeholder', $placeholder);
279
280
  settings.onTopPassed = function() {
280
- $module
281
- .addClass(className.fixed)
282
- .css({
283
- top: settings.offset + 'px'
284
- })
285
- ;
281
+ module.debug('Element passed, adding fixed position', $module);
282
+ module.show.placeholder();
283
+ module.set.fixed();
286
284
  if(settings.transition) {
287
285
  if($.fn.transition !== undefined) {
288
286
  $module.transition(settings.transition, settings.duration);
@@ -290,49 +288,91 @@ $.fn.visibility = function(parameters) {
290
288
  }
291
289
  };
292
290
  settings.onTopPassedReverse = function() {
293
- $module
294
- .removeClass(className.fixed)
295
- .css({
296
- position: '',
297
- top: ''
298
- })
299
- ;
291
+ module.debug('Element returned to position, removing fixed', $module);
292
+ module.hide.placeholder();
293
+ module.remove.fixed();
300
294
  };
301
295
  }
302
296
  },
303
297
 
298
+ create: {
299
+ placeholder: function() {
300
+ module.verbose('Creating fixed position placeholder');
301
+ $placeholder = $module
302
+ .clone(false)
303
+ .css('display', 'none')
304
+ .addClass(className.placeholder)
305
+ .insertAfter($module)
306
+ ;
307
+ }
308
+ },
309
+
310
+ show: {
311
+ placeholder: function() {
312
+ module.verbose('Showing placeholder');
313
+ $placeholder
314
+ .css('display', 'block')
315
+ .css('visibility', 'hidden')
316
+ ;
317
+ }
318
+ },
319
+ hide: {
320
+ placeholder: function() {
321
+ module.verbose('Hiding placeholder');
322
+ $placeholder
323
+ .css('display', 'none')
324
+ .css('visibility', '')
325
+ ;
326
+ }
327
+ },
328
+
304
329
  set: {
305
- image: function(src) {
306
- var
307
- offScreen = (module.cache.screen.bottom < module.cache.element.top)
330
+ fixed: function() {
331
+ module.verbose('Setting element to fixed position');
332
+ $module
333
+ .addClass(className.fixed)
334
+ .css({
335
+ position : 'fixed',
336
+ top : settings.offset + 'px',
337
+ left : 'auto',
338
+ zIndex : '1'
339
+ })
308
340
  ;
341
+ },
342
+ image: function(src) {
309
343
  $module
310
344
  .attr('src', src)
311
345
  ;
312
- if(offScreen) {
313
- module.verbose('Image outside browser, no show animation');
314
- $module.show();
315
- }
316
- else {
317
- if(settings.transition) {
318
- if( $.fn.transition !== undefined ) {
319
- $module.transition(settings.transition, settings.duration);
320
- }
321
- else {
322
- $module.fadeIn(settings.duration);
323
- }
346
+ if(settings.transition) {
347
+ if( $.fn.transition !== undefined ) {
348
+ $module.transition(settings.transition, settings.duration);
324
349
  }
325
350
  else {
326
- $module.show();
351
+ $module.fadeIn(settings.duration);
327
352
  }
328
353
  }
354
+ else {
355
+ $module.show();
356
+ }
329
357
  }
330
358
  },
331
359
 
332
360
  is: {
361
+ onScreen: function() {
362
+ var
363
+ calculations = module.get.elementCalculations()
364
+ ;
365
+ return calculations.onScreen;
366
+ },
367
+ offScreen: function() {
368
+ var
369
+ calculations = module.get.elementCalculations()
370
+ ;
371
+ return calculations.offScreen;
372
+ },
333
373
  visible: function() {
334
374
  if(module.cache && module.cache.element) {
335
- return (module.cache.element.width > 0);
375
+ return !(module.cache.element.width === 0 && module.cache.element.offset.top === 0);
336
376
  }
337
377
  return false;
338
378
  }
@@ -340,9 +380,15 @@ $.fn.visibility = function(parameters) {
340
380
 
341
381
  refresh: function() {
342
382
  module.debug('Refreshing constants (width/height)');
383
+ if(settings.type == 'fixed') {
384
+ module.remove.fixed();
385
+ module.remove.occurred();
386
+ }
343
387
  module.reset();
344
388
  module.save.position();
345
- module.checkVisibility();
389
+ if(settings.checkOnRefresh) {
390
+ module.checkVisibility();
391
+ }
346
392
  settings.onRefresh.call(element);
347
393
  },
348
394
 
@@ -357,7 +403,7 @@ $.fn.visibility = function(parameters) {
357
403
  checkVisibility: function(scroll) {
358
404
  module.verbose('Checking visibility of element', module.cache.element);
359
405
 
360
- if( module.is.visible() ) {
406
+ if( !disabled && module.is.visible() ) {
361
407
 
362
408
  // save scroll position
363
409
  module.save.scroll(scroll);
@@ -376,6 +422,8 @@ $.fn.visibility = function(parameters) {
376
422
  module.bottomPassedReverse();
377
423
 
378
424
  // one time
425
+ module.onScreen();
426
+ module.offScreen();
379
427
  module.passing();
380
428
  module.topVisible();
381
429
  module.bottomVisible();
@@ -395,7 +443,7 @@ $.fn.visibility = function(parameters) {
395
443
  amountInPixels
396
444
  ;
397
445
  // assign callback
398
- if(amount !== undefined && newCallback !== undefined) {
446
+ if(amount && newCallback) {
399
447
  settings.onPassed[amount] = newCallback;
400
448
  }
401
449
  else if(amount !== undefined) {
@@ -413,6 +461,48 @@ $.fn.visibility = function(parameters) {
413
461
  }
414
462
  },
415
463
 
464
+ onScreen: function(newCallback) {
465
+ var
466
+ calculations = module.get.elementCalculations(),
467
+ callback = newCallback || settings.onOnScreen,
468
+ callbackName = 'onScreen'
469
+ ;
470
+ if(newCallback) {
471
+ module.debug('Adding callback for onScreen', newCallback);
472
+ settings.onOnScreen = newCallback;
473
+ }
474
+ if(calculations.onScreen) {
475
+ module.execute(callback, callbackName);
476
+ }
477
+ else if(!settings.once) {
478
+ module.remove.occurred(callbackName);
479
+ }
480
+ if(newCallback !== undefined) {
481
+ return calculations.onOnScreen;
482
+ }
483
+ },
484
+
485
+ offScreen: function(newCallback) {
486
+ var
487
+ calculations = module.get.elementCalculations(),
488
+ callback = newCallback || settings.onOffScreen,
489
+ callbackName = 'offScreen'
490
+ ;
491
+ if(newCallback) {
492
+ module.debug('Adding callback for offScreen', newCallback);
493
+ settings.onOffScreen = newCallback;
494
+ }
495
+ if(calculations.offScreen) {
496
+ module.execute(callback, callbackName);
497
+ }
498
+ else if(!settings.once) {
499
+ module.remove.occurred(callbackName);
500
+ }
501
+ if(newCallback !== undefined) {
502
+ return calculations.onOffScreen;
503
+ }
504
+ },
505
+
416
506
  passing: function(newCallback) {
417
507
  var
418
508
  calculations = module.get.elementCalculations(),
@@ -655,9 +745,24 @@ $.fn.visibility = function(parameters) {
655
745
  },
656
746
 
657
747
  remove: {
748
+ fixed: function() {
749
+ module.debug('Removing fixed position');
750
+ $module
751
+ .removeClass(className.fixed)
752
+ .css({
753
+ position : '',
754
+ top : '',
755
+ left : '',
756
+ zIndex : ''
757
+ })
758
+ ;
759
+ },
658
760
  occurred: function(callback) {
659
761
  if(callback) {
660
- if(module.cache.occurred[callback] !== undefined && module.cache.occurred[callback] === true) {
762
+ var
763
+ occurred = module.cache.occurred
764
+ ;
765
+ if(occurred[callback] !== undefined && occurred[callback] === true) {
661
766
  module.debug('Callback can now be called again', callback);
662
767
  module.cache.occurred[callback] = false;
663
768
  }
@@ -747,9 +852,9 @@ $.fn.visibility = function(parameters) {
747
852
  element.percentagePassed = 0;
748
853
 
749
854
  // meta calculations
750
- element.visible = (element.topVisible || element.bottomVisible);
751
- element.passing = (element.topPassed && !element.bottomPassed);
752
- element.hidden = (!element.topVisible && !element.bottomVisible);
855
+ element.onScreen = (element.topVisible && !element.bottomPassed);
856
+ element.passing = (element.topPassed && !element.bottomPassed);
857
+ element.offScreen = (!element.onScreen);
753
858
 
754
859
  // passing calculations
755
860
  if(element.passing) {
@@ -1001,6 +1106,8 @@ $.fn.visibility = function(parameters) {
1001
1106
  if(instance === undefined) {
1002
1107
  module.initialize();
1003
1108
  }
1109
+ instance.save.scroll();
1110
+ instance.save.calculations();
1004
1111
  module.invoke(query);
1005
1112
  }
1006
1113
  else {
@@ -1030,9 +1137,18 @@ $.fn.visibility.settings = {
1030
1137
  // whether to use mutation observers to follow changes
1031
1138
  observeChanges : true,
1032
1139
 
1140
+ // check position immediately on init
1141
+ initialCheck : true,
1142
+
1033
1143
  // whether to refresh calculations after all page images load
1034
1144
  refreshOnLoad : true,
1035
1145
 
1146
+ // whether to refresh calculations after page resize event
1147
+ refreshOnResize : true,
1148
+
1149
+ // should call callbacks on refresh event (resize, etc)
1150
+ checkOnRefresh : true,
1151
+
1036
1152
  // callback should only occur one time
1037
1153
  once : true,
1038
1154
 
@@ -1048,9 +1164,6 @@ $.fn.visibility.settings = {
1048
1164
  // scroll context for visibility checks
1049
1165
  context : window,
1050
1166
 
1051
- // check position immediately on init
1052
- initialCheck : true,
1053
-
1054
1167
  // visibility check delay in ms (defaults to animationFrame)
1055
1168
  throttle : false,
1056
1169
 
@@ -1058,13 +1171,15 @@ $.fn.visibility.settings = {
1058
1171
  type : false,
1059
1172
 
1060
1173
  // image only animation settings
1061
- transition : false,
1174
+ transition : 'fade in',
1062
1175
  duration : 1000,
1063
1176
 
1064
1177
  // array of callbacks for percentage
1065
1178
  onPassed : {},
1066
1179
 
1067
1180
  // standard callbacks
1181
+ onOnScreen : false,
1182
+ onOffScreen : false,
1068
1183
  onPassing : false,
1069
1184
  onTopVisible : false,
1070
1185
  onBottomVisible : false,
@@ -1082,8 +1197,13 @@ $.fn.visibility.settings = {
1082
1197
  onUpdate : false, // disabled by default for performance
1083
1198
  onRefresh : function(){},
1084
1199
 
1200
+ metadata : {
1201
+ src: 'src'
1202
+ },
1203
+
1085
1204
  className: {
1086
- fixed: 'fixed'
1205
+ fixed : 'fixed',
1206
+ placeholder : 'placeholder'
1087
1207
  },
1088
1208
 
1089
1209
  error : {