volt-semantic-ui 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/Gemfile +0 -0
  4. data/LICENSE.txt +0 -0
  5. data/README.md +0 -0
  6. data/Rakefile +0 -0
  7. data/app/semanticui/assets/css/semantic.min.css +3 -3
  8. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.eot +0 -0
  9. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.svg +0 -0
  10. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.ttf +0 -0
  11. data/app/semanticui/assets/css/themes/basic/assets/fonts/icons.woff +0 -0
  12. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.eot +0 -0
  13. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.otf +0 -0
  14. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.svg +526 -465
  15. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.ttf +0 -0
  16. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.woff +0 -0
  17. data/app/semanticui/assets/css/themes/default/assets/fonts/icons.woff2 +0 -0
  18. data/app/semanticui/assets/css/themes/default/assets/images/flags.png +0 -0
  19. data/app/semanticui/assets/js/components/accordion.css +256 -0
  20. data/app/semanticui/assets/js/components/accordion.js +578 -0
  21. data/app/semanticui/assets/js/components/accordion.min.css +10 -0
  22. data/app/semanticui/assets/js/components/accordion.min.js +11 -0
  23. data/app/semanticui/assets/js/components/ad.css +276 -0
  24. data/app/semanticui/assets/js/components/ad.min.css +10 -0
  25. data/app/semanticui/assets/js/components/api.js +871 -0
  26. data/app/semanticui/assets/js/components/api.min.js +11 -0
  27. data/app/semanticui/assets/js/components/breadcrumb.css +124 -0
  28. data/app/semanticui/assets/js/components/breadcrumb.min.css +10 -0
  29. data/app/semanticui/assets/js/components/button.css +2391 -0
  30. data/app/semanticui/assets/js/components/button.min.css +10 -0
  31. data/app/semanticui/assets/js/components/card.css +909 -0
  32. data/app/semanticui/assets/js/components/card.min.css +10 -0
  33. data/app/semanticui/assets/js/components/checkbox.css +513 -0
  34. data/app/semanticui/assets/js/components/checkbox.js +509 -0
  35. data/app/semanticui/assets/js/components/checkbox.min.css +10 -0
  36. data/app/semanticui/assets/js/components/checkbox.min.js +11 -0
  37. data/app/semanticui/assets/js/components/comment.css +259 -0
  38. data/app/semanticui/assets/js/components/comment.min.css +10 -0
  39. data/app/semanticui/assets/js/components/dimmer.css +186 -0
  40. data/app/semanticui/assets/js/components/dimmer.js +669 -0
  41. data/app/semanticui/assets/js/components/dimmer.min.css +10 -0
  42. data/app/semanticui/assets/js/components/dimmer.min.js +11 -0
  43. data/app/semanticui/assets/js/components/divider.css +241 -0
  44. data/app/semanticui/assets/js/components/divider.min.css +10 -0
  45. data/app/semanticui/assets/js/components/dropdown.css +1103 -0
  46. data/app/semanticui/assets/js/components/dropdown.js +1795 -0
  47. data/app/semanticui/assets/js/components/dropdown.min.css +10 -0
  48. data/app/semanticui/assets/js/components/dropdown.min.js +11 -0
  49. data/app/semanticui/assets/js/components/feed.css +276 -0
  50. data/app/semanticui/assets/js/components/feed.min.css +10 -0
  51. data/app/semanticui/assets/js/components/flag.css +1024 -0
  52. data/app/semanticui/assets/js/components/flag.min.css +10 -0
  53. data/app/semanticui/assets/js/components/form.css +891 -0
  54. data/app/semanticui/assets/js/components/form.js +1118 -0
  55. data/app/semanticui/assets/js/components/form.min.css +10 -0
  56. data/app/semanticui/assets/js/components/form.min.js +11 -0
  57. data/app/semanticui/assets/js/components/grid.css +1871 -0
  58. data/app/semanticui/assets/js/components/grid.min.css +10 -0
  59. data/app/semanticui/assets/js/components/header.css +596 -0
  60. data/app/semanticui/assets/js/components/header.min.css +10 -0
  61. data/app/semanticui/assets/js/components/icon.css +2467 -0
  62. data/app/semanticui/assets/js/components/icon.min.css +10 -0
  63. data/app/semanticui/assets/js/components/image.css +288 -0
  64. data/app/semanticui/assets/js/components/image.min.css +10 -0
  65. data/app/semanticui/assets/js/components/input.css +439 -0
  66. data/app/semanticui/assets/js/components/input.min.css +10 -0
  67. data/app/semanticui/assets/js/components/item.css +456 -0
  68. data/app/semanticui/assets/js/components/item.min.css +10 -0
  69. data/app/semanticui/assets/js/components/label.css +963 -0
  70. data/app/semanticui/assets/js/components/label.min.css +10 -0
  71. data/app/semanticui/assets/js/components/list.css +878 -0
  72. data/app/semanticui/assets/js/components/list.min.css +10 -0
  73. data/app/semanticui/assets/js/components/loader.css +284 -0
  74. data/app/semanticui/assets/js/components/loader.min.css +10 -0
  75. data/app/semanticui/assets/js/components/menu.css +1608 -0
  76. data/app/semanticui/assets/js/components/menu.min.css +10 -0
  77. data/app/semanticui/assets/js/components/message.css +421 -0
  78. data/app/semanticui/assets/js/components/message.min.css +10 -0
  79. data/app/semanticui/assets/js/components/modal.css +432 -0
  80. data/app/semanticui/assets/js/components/modal.js +860 -0
  81. data/app/semanticui/assets/js/components/modal.min.css +10 -0
  82. data/app/semanticui/assets/js/components/modal.min.js +11 -0
  83. data/app/semanticui/assets/js/components/nag.css +148 -0
  84. data/app/semanticui/assets/js/components/nag.js +477 -0
  85. data/app/semanticui/assets/js/components/nag.min.css +10 -0
  86. data/app/semanticui/assets/js/components/nag.min.js +11 -0
  87. data/app/semanticui/assets/js/components/popup.css +293 -0
  88. data/app/semanticui/assets/js/components/popup.js +1224 -0
  89. data/app/semanticui/assets/js/components/popup.min.css +10 -0
  90. data/app/semanticui/assets/js/components/popup.min.js +11 -0
  91. data/app/semanticui/assets/js/components/progress.css +461 -0
  92. data/app/semanticui/assets/js/components/progress.js +785 -0
  93. data/app/semanticui/assets/js/components/progress.min.css +10 -0
  94. data/app/semanticui/assets/js/components/progress.min.js +11 -0
  95. data/app/semanticui/assets/js/components/rail.css +124 -0
  96. data/app/semanticui/assets/js/components/rail.min.css +10 -0
  97. data/app/semanticui/assets/js/components/rating.css +251 -0
  98. data/app/semanticui/assets/js/components/rating.js +451 -0
  99. data/app/semanticui/assets/js/components/rating.min.css +10 -0
  100. data/app/semanticui/assets/js/components/rating.min.js +11 -0
  101. data/app/semanticui/assets/js/components/reset.css +429 -0
  102. data/app/semanticui/assets/js/components/reset.min.css +10 -0
  103. data/app/semanticui/assets/js/components/reveal.css +293 -0
  104. data/app/semanticui/assets/js/components/reveal.min.css +10 -0
  105. data/app/semanticui/assets/js/components/search.css +329 -0
  106. data/app/semanticui/assets/js/components/search.js +1096 -0
  107. data/app/semanticui/assets/js/components/search.min.css +10 -0
  108. data/app/semanticui/assets/js/components/search.min.js +11 -0
  109. data/app/semanticui/assets/js/components/segment.css +635 -0
  110. data/app/semanticui/assets/js/components/segment.min.css +10 -0
  111. data/app/semanticui/assets/js/components/shape.css +154 -0
  112. data/app/semanticui/assets/js/components/shape.js +830 -0
  113. data/app/semanticui/assets/js/components/shape.min.css +10 -0
  114. data/app/semanticui/assets/js/components/shape.min.js +11 -0
  115. data/app/semanticui/assets/js/components/sidebar.css +625 -0
  116. data/app/semanticui/assets/js/components/sidebar.js +1089 -0
  117. data/app/semanticui/assets/js/components/sidebar.min.css +10 -0
  118. data/app/semanticui/assets/js/components/sidebar.min.js +11 -0
  119. data/app/semanticui/assets/js/components/site.css +160 -0
  120. data/app/semanticui/assets/js/components/site.js +487 -0
  121. data/app/semanticui/assets/js/components/site.min.css +10 -0
  122. data/app/semanticui/assets/js/components/site.min.js +11 -0
  123. data/app/semanticui/assets/js/components/state.js +695 -0
  124. data/app/semanticui/assets/js/components/state.min.js +11 -0
  125. data/app/semanticui/assets/js/components/statistic.css +409 -0
  126. data/app/semanticui/assets/js/components/statistic.min.css +10 -0
  127. data/app/semanticui/assets/js/components/step.css +432 -0
  128. data/app/semanticui/assets/js/components/step.min.css +10 -0
  129. data/app/semanticui/assets/js/components/sticky.css +79 -0
  130. data/app/semanticui/assets/js/components/sticky.js +792 -0
  131. data/app/semanticui/assets/js/components/sticky.min.css +10 -0
  132. data/app/semanticui/assets/js/components/sticky.min.js +11 -0
  133. data/app/semanticui/assets/js/components/tab.css +92 -0
  134. data/app/semanticui/assets/js/components/tab.js +802 -0
  135. data/app/semanticui/assets/js/components/tab.min.css +10 -0
  136. data/app/semanticui/assets/js/components/tab.min.js +11 -0
  137. data/app/semanticui/assets/js/components/table.css +1000 -0
  138. data/app/semanticui/assets/js/components/table.min.css +10 -0
  139. data/app/semanticui/assets/js/components/transition.css +1990 -0
  140. data/app/semanticui/assets/js/components/transition.js +1038 -0
  141. data/app/semanticui/assets/js/components/transition.min.css +10 -0
  142. data/app/semanticui/assets/js/components/transition.min.js +11 -0
  143. data/app/semanticui/assets/js/components/video.css +125 -0
  144. data/app/semanticui/assets/js/components/video.js +540 -0
  145. data/app/semanticui/assets/js/components/video.min.css +10 -0
  146. data/app/semanticui/assets/js/components/video.min.js +11 -0
  147. data/app/semanticui/assets/js/components/visibility.js +1032 -0
  148. data/app/semanticui/assets/js/components/visibility.min.js +11 -0
  149. data/app/semanticui/assets/js/semantic.min.js +9 -9
  150. data/lib/volt/semanticui.rb +0 -0
  151. data/lib/volt/semanticui/version.rb +1 -1
  152. data/volt-semantic-ui-0.0.1.gem +0 -0
  153. data/volt-semanticui-0.0.1.gem +0 -0
  154. data/volt-semanticui.gemspec +0 -0
  155. metadata +141 -10
@@ -0,0 +1,10 @@
1
+ /*!
2
+ * # Semantic UI 1.11.4 - Step
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributors
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */.ui.steps .step{position:relative;display:table-cell;vertical-align:middle;margin:0;padding:.9285em 1.5em .9285em 2.25em;background:#fff;color:rgba(0,0,0,.8);box-shadow:0 0 0 1px #d4d4d5;border-radius:0}.ui.steps .step:after{position:absolute;z-index:2;content:'';top:50%;right:0;border:none;background-color:#fff;width:1.5em;height:1.5em;border-bottom:1px solid rgba(39,41,43,.15);border-right:1px solid rgba(39,41,43,.15);-webkit-transform:translateY(-50%) translateX(50%) rotate(-45deg);-ms-transform:translateY(-50%) translateX(50%) rotate(-45deg);transform:translateY(-50%) translateX(50%) rotate(-45deg)}.ui.steps .step,.ui.steps .step:after{-webkit-transition:background-color .2s ease,opacity .2s ease,color .2s ease,box-shadow .2s ease;transition:background-color .2s ease,opacity .2s ease,color .2s ease,box-shadow .2s ease}.ui.steps{display:table;table-layout:fixed;background:0 0;box-shadow:'';line-height:1.142rem;box-sizing:border-box;border-radius:.2857rem}.ui.steps .step:first-child{padding-left:1.5em;border-radius:.2857rem 0 0 .2857rem}.ui.steps .step:last-child{border-radius:0 .2857rem .2857rem 0}.ui.steps .step:only-child{border-radius:.2857rem}.ui.steps .step:last-child{margin-right:0}.ui.steps .step:last-child:after{display:none}.ui.steps .step .title{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1.0714em;font-weight:700}.ui.steps .step .description{font-weight:400;font-size:.9285em;color:rgba(0,0,0,.8)}.ui.steps .step .title~.description{margin-top:.1em}.ui.steps .step>.icon,.ui.steps .step>.icon~.content{display:table-cell;vertical-align:middle}.ui.steps .step>.icon{font-size:2em;margin:0;padding-right:.6em}.ui.steps .link.step,.ui.steps a.step{cursor:pointer}.ui.ordered.steps{counter-reset:ordered}.ui.ordered.steps .step:before{display:table-cell;position:static;text-align:center;content:counters(ordered,".");vertical-align:middle;padding-right:.6em;font-size:2em;counter-increment:ordered}.ui.ordered.steps .step>*{display:table-cell;vertical-align:middle}.ui.vertical.steps{display:inline-block;overflow:visible}.ui.vertical.steps .step{display:block;border-radius:0;padding:.9285em 1.5em}.ui.vertical.steps .step:first-child{padding:.9285em 1.5em;border-radius:.2857rem .2857rem 0 0}.ui.vertical.steps .step:last-child{border-radius:0 0 .2857rem .2857rem}.ui.vertical.steps .step:after{display:none}.ui.vertical.steps .active.step:after{display:block}@media only screen and (max-width:767px){.ui.steps{overflow:visible}.ui.steps .step{display:block;border-radius:0;padding:.9285em 1.5em}.ui.steps .step:first-child{padding:.9285em 1.5em;border-radius:.2857rem .2857rem 0 0}.ui.steps .step:last-child{border-radius:0 0 .2857rem .2857rem}.ui.steps .step:after{display:none}}.ui.steps .link.step:hover,.ui.steps .link.step:hover::after,.ui.steps a.step:hover,.ui.steps a.step:hover::after{background:#fafafa;color:rgba(0,0,0,.8)}.ui.steps .link.step:active,.ui.steps .link.step:active::after,.ui.steps a.step:active,.ui.steps a.step:active::after{background:#f0f0f0;color:rgba(0,0,0,.8)}.ui.steps .step.active{cursor:auto;background:#f0f0f0}.ui.steps .step.active:after{background:#f0f0f0}.ui.steps .step.active .title{color:#009fda}.ui.ordered.steps .step.active:before,.ui.steps .active.step .icon{color:rgba(0,0,0,.85)}.ui.steps .link.active.step:hover,.ui.steps .link.active.step:hover::after,.ui.steps a.active.step:hover,.ui.steps a.active.step:hover::after{cursor:pointer;background:#ececec;color:rgba(0,0,0,.8)}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{color:#5bbd72}.ui.steps .disabled.step{cursor:auto;background:#fff;pointer-events:none}.ui.steps .disabled.step,.ui.steps .disabled.step .description,.ui.steps .disabled.step .title{color:rgba(40,40,40,.3)}.ui.steps .disabled.step:after{background:#fff}@media only screen and (min-width:992px){.ui[class*="tablet stackable"].steps{overflow:visible}.ui[class*="tablet stackable"].steps .step{display:block;border-radius:0;padding:.9285em 1.5em}.ui[class*="tablet stackable"].steps .step:first-child{padding:.9285em 1.5em;border-radius:.2857rem .2857rem 0 0}.ui[class*="tablet stackable"].steps .step:last-child{border-radius:0 0 .2857rem .2857rem}.ui[class*="tablet stackable"].steps .step:after{display:none}}.ui.fluid.steps{width:100%}.attached.ui.steps{margin:0;border-radius:.2857rem .2857rem 0 0}.attached.ui.steps .step:first-child{border-radius:.2857rem 0 0}.attached.ui.steps .step:last-child{border-radius:0 .2857rem 0 0}.bottom.attached.ui.steps{margin:-1px 0 0;border-radius:0 0 .2857rem .2857rem}.bottom.attached.ui.steps .step:first-child{border-radius:0 0 0 .2857rem}.bottom.attached.ui.steps .step:last-child{border-radius:0 0 .2857rem}.ui.eight.steps,.ui.five.steps,.ui.four.steps,.ui.one.steps,.ui.one.steps>.step,.ui.seven.steps,.ui.six.steps,.ui.three.steps,.ui.two.steps{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.small.step,.ui.small.steps .step{font-size:.92857143rem}.ui.step,.ui.steps .step{font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:1.14285714rem}@font-face{font-family:Step;src:url(data:application/x-font-ttf;charset=utf-8;;base64,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) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,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) format('woff')}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{font-family:Step;content:'\e800'}
@@ -0,0 +1,79 @@
1
+ /*!
2
+ * # Semantic UI 1.11.4 - Sticky
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributors
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+
13
+ /*******************************
14
+ Sticky
15
+ *******************************/
16
+
17
+ .ui.sticky {
18
+ position: static;
19
+ -webkit-transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
20
+ transition: width 0.2s ease, height 0.2s ease, top 0.2s ease, bottom 0.2s ease;
21
+ z-index: 800;
22
+ }
23
+
24
+
25
+ /*******************************
26
+ States
27
+ *******************************/
28
+
29
+
30
+ /* Bound */
31
+ .ui.sticky.bound {
32
+ position: absolute;
33
+ left: auto;
34
+ right: auto;
35
+ }
36
+
37
+ /* Fixed */
38
+ .ui.sticky.fixed {
39
+ position: fixed;
40
+ left: auto;
41
+ right: auto;
42
+ }
43
+
44
+ /* Bound/Fixed Position */
45
+ .ui.sticky.bound.top,
46
+ .ui.sticky.fixed.top {
47
+ top: 0px;
48
+ bottom: auto;
49
+ }
50
+ .ui.sticky.bound.bottom,
51
+ .ui.sticky.fixed.bottom {
52
+ top: auto;
53
+ bottom: 0px;
54
+ }
55
+
56
+
57
+ /*******************************
58
+ Types
59
+ *******************************/
60
+
61
+ .ui.native.sticky {
62
+ position: -webkit-sticky;
63
+ position: -moz-sticky;
64
+ position: -ms-sticky;
65
+ position: -o-sticky;
66
+ position: sticky;
67
+ }
68
+
69
+
70
+ /*******************************
71
+ Theme Overrides
72
+ *******************************/
73
+
74
+
75
+
76
+ /*******************************
77
+ Site Overrides
78
+ *******************************/
79
+
@@ -0,0 +1,792 @@
1
+ /*!
2
+ * # Semantic UI 1.11.4 - Sticky
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Copyright 2014 Contributorss
7
+ * Released under the MIT license
8
+ * http://opensource.org/licenses/MIT
9
+ *
10
+ */
11
+
12
+ ;(function ( $, window, document, undefined ) {
13
+
14
+ "use strict";
15
+
16
+ $.fn.sticky = function(parameters) {
17
+ var
18
+ $allModules = $(this),
19
+ moduleSelector = $allModules.selector || '',
20
+
21
+ time = new Date().getTime(),
22
+ performance = [],
23
+
24
+ query = arguments[0],
25
+ methodInvoked = (typeof query == 'string'),
26
+ queryArguments = [].slice.call(arguments, 1),
27
+ returnedValue
28
+ ;
29
+
30
+ $allModules
31
+ .each(function() {
32
+ var
33
+ settings = ( $.isPlainObject(parameters) )
34
+ ? $.extend(true, {}, $.fn.sticky.settings, parameters)
35
+ : $.extend({}, $.fn.sticky.settings),
36
+
37
+ className = settings.className,
38
+ namespace = settings.namespace,
39
+ error = settings.error,
40
+
41
+ eventNamespace = '.' + namespace,
42
+ moduleNamespace = 'module-' + namespace,
43
+
44
+ $module = $(this),
45
+ $window = $(window),
46
+ $container = $module.offsetParent(),
47
+ $scroll = $(settings.scrollContext),
48
+ $context,
49
+
50
+ selector = $module.selector || '',
51
+ instance = $module.data(moduleNamespace),
52
+
53
+ requestAnimationFrame = window.requestAnimationFrame
54
+ || window.mozRequestAnimationFrame
55
+ || window.webkitRequestAnimationFrame
56
+ || window.msRequestAnimationFrame
57
+ || function(callback) { setTimeout(callback, 0); },
58
+
59
+ element = this,
60
+ observer,
61
+ module
62
+ ;
63
+
64
+ module = {
65
+
66
+ initialize: function() {
67
+
68
+ module.determineContext();
69
+ module.verbose('Initializing sticky', settings, $container);
70
+
71
+ module.save.positions();
72
+ module.checkErrors();
73
+ module.bind.events();
74
+
75
+ if(settings.observeChanges) {
76
+ module.observeChanges();
77
+ }
78
+ module.instantiate();
79
+ },
80
+
81
+ instantiate: function() {
82
+ module.verbose('Storing instance of module', module);
83
+ instance = module;
84
+ $module
85
+ .data(moduleNamespace, module)
86
+ ;
87
+ },
88
+
89
+ destroy: function() {
90
+ module.verbose('Destroying previous module');
91
+ module.reset();
92
+ if(observer) {
93
+ observer.disconnect();
94
+ }
95
+ $window.off('resize' + eventNamespace, module.event.resize);
96
+ $scroll.off('scroll' + eventNamespace, module.event.scroll);
97
+ $module.removeData(moduleNamespace);
98
+ },
99
+
100
+ observeChanges: function() {
101
+ var
102
+ context = $context[0]
103
+ ;
104
+ if('MutationObserver' in window) {
105
+ observer = new MutationObserver(function(mutations) {
106
+ clearTimeout(module.timer);
107
+ module.timer = setTimeout(function() {
108
+ module.verbose('DOM tree modified, updating sticky menu');
109
+ module.refresh();
110
+ }, 20);
111
+ });
112
+ observer.observe(element, {
113
+ childList : true,
114
+ subtree : true
115
+ });
116
+ observer.observe(context, {
117
+ childList : true,
118
+ subtree : true
119
+ });
120
+ module.debug('Setting up mutation observer', observer);
121
+ }
122
+ },
123
+
124
+ determineContext: function() {
125
+ if(settings.context) {
126
+ $context = $(settings.context);
127
+ }
128
+ else {
129
+ $context = $container;
130
+ }
131
+ if($context.length === 0) {
132
+ module.error(error.invalidContext, settings.context, $module);
133
+ return;
134
+ }
135
+ },
136
+
137
+ checkErrors: function() {
138
+ if( module.is.hidden() ) {
139
+ module.error(error.visible, $module);
140
+ }
141
+ if(module.cache.element.height > module.cache.context.height) {
142
+ module.reset();
143
+ module.error(error.elementSize, $module);
144
+ return;
145
+ }
146
+ },
147
+
148
+ bind: {
149
+ events: function() {
150
+ $window.on('resize' + eventNamespace, module.event.resize);
151
+ $scroll.on('scroll' + eventNamespace, module.event.scroll);
152
+ }
153
+ },
154
+
155
+ event: {
156
+ resize: function() {
157
+ requestAnimationFrame(function() {
158
+ module.refresh();
159
+ module.stick();
160
+ });
161
+ },
162
+ scroll: function() {
163
+ requestAnimationFrame(function() {
164
+ module.stick();
165
+ settings.onScroll.call(element);
166
+ });
167
+ }
168
+ },
169
+
170
+ refresh: function(hardRefresh) {
171
+ module.reset();
172
+ if(hardRefresh) {
173
+ $container = $module.offsetParent();
174
+ }
175
+ module.save.positions();
176
+ module.stick();
177
+ settings.onReposition.call(element);
178
+ },
179
+
180
+ supports: {
181
+ sticky: function() {
182
+ var
183
+ $element = $('<div/>'),
184
+ element = $element.get()
185
+ ;
186
+ $element.addClass(className.supported);
187
+ return($element.css('position').match('sticky'));
188
+ }
189
+ },
190
+
191
+ save: {
192
+ scroll: function(scroll) {
193
+ module.lastScroll = scroll;
194
+ },
195
+ positions: function() {
196
+ var
197
+ window = {
198
+ height: $window.height()
199
+ },
200
+ element = {
201
+ margin: {
202
+ top : parseInt($module.css('margin-top'), 10),
203
+ bottom : parseInt($module.css('margin-bottom'), 10),
204
+ },
205
+ offset : $module.offset(),
206
+ width : $module.outerWidth(),
207
+ height : $module.outerHeight()
208
+ },
209
+ context = {
210
+ offset : $context.offset(),
211
+ height : $context.outerHeight(),
212
+ bottomPadding : parseInt($context.css('padding-bottom'), 10)
213
+ }
214
+ ;
215
+ module.cache = {
216
+ fits : ( element.height < window.height ),
217
+ window: {
218
+ height: window.height
219
+ },
220
+ element: {
221
+ margin : element.margin,
222
+ top : element.offset.top - element.margin.top,
223
+ left : element.offset.left,
224
+ width : element.width,
225
+ height : element.height,
226
+ bottom : element.offset.top + element.height
227
+ },
228
+ context: {
229
+ top : context.offset.top,
230
+ height : context.height,
231
+ bottomPadding : context.bottomPadding,
232
+ bottom : context.offset.top + context.height - context.bottomPadding
233
+ }
234
+ };
235
+ module.set.containerSize();
236
+ module.set.size();
237
+ module.stick();
238
+ module.debug('Caching element positions', module.cache);
239
+ }
240
+ },
241
+
242
+ get: {
243
+ direction: function(scroll) {
244
+ var
245
+ direction = 'down'
246
+ ;
247
+ scroll = scroll || $scroll.scrollTop();
248
+ if(module.lastScroll !== undefined) {
249
+ if(module.lastScroll < scroll) {
250
+ direction = 'down';
251
+ }
252
+ else if(module.lastScroll > scroll) {
253
+ direction = 'up';
254
+ }
255
+ }
256
+ return direction;
257
+ },
258
+ scrollChange: function(scroll) {
259
+ scroll = scroll || $scroll.scrollTop();
260
+ return (module.lastScroll)
261
+ ? (scroll - module.lastScroll)
262
+ : 0
263
+ ;
264
+ },
265
+ currentElementScroll: function() {
266
+ return ( module.is.top() )
267
+ ? Math.abs(parseInt($module.css('top'), 10)) || 0
268
+ : Math.abs(parseInt($module.css('bottom'), 10)) || 0
269
+ ;
270
+ },
271
+ elementScroll: function(scroll) {
272
+ scroll = scroll || $scroll.scrollTop();
273
+ var
274
+ element = module.cache.element,
275
+ window = module.cache.window,
276
+ delta = module.get.scrollChange(scroll),
277
+ maxScroll = (element.height - window.height + settings.offset),
278
+ currentScroll = module.get.currentElementScroll(),
279
+ possibleScroll = (currentScroll + delta),
280
+ elementScroll
281
+ ;
282
+ if(module.cache.fits || possibleScroll < 0) {
283
+ elementScroll = 0;
284
+ }
285
+ else if (possibleScroll > maxScroll ) {
286
+ elementScroll = maxScroll;
287
+ }
288
+ else {
289
+ elementScroll = possibleScroll;
290
+ }
291
+ return elementScroll;
292
+ }
293
+ },
294
+
295
+ remove: {
296
+ offset: function() {
297
+ $module.css('margin-top', '');
298
+ }
299
+ },
300
+
301
+ set: {
302
+ offset: function() {
303
+ module.verbose('Setting offset on element', settings.offset);
304
+ $module.css('margin-top', settings.offset);
305
+ },
306
+ containerSize: function() {
307
+ var
308
+ tagName = $container.get(0).tagName
309
+ ;
310
+ if(tagName === 'HTML' || tagName == 'body') {
311
+ // this can trigger for too many reasons
312
+ //module.error(error.container, tagName, $module);
313
+ $container = $module.offsetParent();
314
+ }
315
+ else {
316
+ module.debug('Settings container size', module.cache.context.height);
317
+ if( Math.abs($container.height() - module.cache.context.height) > 5) {
318
+ $container.css({
319
+ height: module.cache.context.height
320
+ });
321
+ }
322
+ }
323
+ },
324
+ scroll: function(scroll) {
325
+ module.debug('Setting scroll on element', scroll);
326
+ if( module.is.top() ) {
327
+ $module
328
+ .css('bottom', '')
329
+ .css('top', -scroll)
330
+ ;
331
+ }
332
+ if( module.is.bottom() ) {
333
+ $module
334
+ .css('top', '')
335
+ .css('bottom', scroll)
336
+ ;
337
+ }
338
+ },
339
+ size: function() {
340
+ if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {
341
+ $module
342
+ .css({
343
+ width : module.cache.element.width,
344
+ height : module.cache.element.height
345
+ })
346
+ ;
347
+ }
348
+ }
349
+ },
350
+
351
+ is: {
352
+ top: function() {
353
+ return $module.hasClass(className.top);
354
+ },
355
+ bottom: function() {
356
+ return $module.hasClass(className.bottom);
357
+ },
358
+ initialPosition: function() {
359
+ return (!module.is.fixed() && !module.is.bound());
360
+ },
361
+ hidden: function() {
362
+ return (!$module.is(':visible'));
363
+ },
364
+ bound: function() {
365
+ return $module.hasClass(className.bound);
366
+ },
367
+ fixed: function() {
368
+ return $module.hasClass(className.fixed);
369
+ }
370
+ },
371
+
372
+ stick: function() {
373
+ var
374
+ cache = module.cache,
375
+ fits = cache.fits,
376
+ element = cache.element,
377
+ window = cache.window,
378
+ context = cache.context,
379
+ offset = (module.is.bottom() && settings.pushing)
380
+ ? settings.bottomOffset
381
+ : settings.offset,
382
+ scroll = {
383
+ top : $scroll.scrollTop() + offset,
384
+ bottom : $scroll.scrollTop() + offset + window.height
385
+ },
386
+ direction = module.get.direction(scroll.top),
387
+ elementScroll = module.get.elementScroll(scroll.top),
388
+
389
+ // shorthand
390
+ doesntFit = !fits,
391
+ elementVisible = (element.height !== 0)
392
+ ;
393
+
394
+ // save current scroll for next run
395
+ module.save.scroll(scroll.top);
396
+
397
+ if(elementVisible) {
398
+
399
+ if( module.is.initialPosition() ) {
400
+ if(scroll.top >= context.bottom) {
401
+ console.log(scroll.top, context.bottom);
402
+ module.debug('Element bottom of container');
403
+ module.bindBottom();
404
+ }
405
+ else if(scroll.top >= element.top) {
406
+ module.debug('Element passed, fixing element to page');
407
+ module.fixTop();
408
+ }
409
+ }
410
+ else if( module.is.fixed() ) {
411
+
412
+ // currently fixed top
413
+ if( module.is.top() ) {
414
+ if( scroll.top < element.top ) {
415
+ module.debug('Fixed element reached top of container');
416
+ module.setInitialPosition();
417
+ }
418
+ else if( (element.height + scroll.top - elementScroll) > context.bottom ) {
419
+ module.debug('Fixed element reached bottom of container');
420
+ module.bindBottom();
421
+ }
422
+ // scroll element if larger than screen
423
+ else if(doesntFit) {
424
+ module.set.scroll(elementScroll);
425
+ }
426
+ }
427
+
428
+ // currently fixed bottom
429
+ else if(module.is.bottom() ) {
430
+
431
+ // top edge
432
+ if( (scroll.bottom - element.height) < element.top) {
433
+ module.debug('Bottom fixed rail has reached top of container');
434
+ module.setInitialPosition();
435
+ }
436
+ // bottom edge
437
+ else if(scroll.bottom > context.bottom) {
438
+ module.debug('Bottom fixed rail has reached bottom of container');
439
+ module.bindBottom();
440
+ }
441
+ // scroll element if larger than screen
442
+ else if(doesntFit) {
443
+ module.set.scroll(elementScroll);
444
+ }
445
+
446
+ }
447
+ }
448
+ else if( module.is.bottom() ) {
449
+ if(settings.pushing) {
450
+ if(module.is.bound() && scroll.bottom < context.bottom ) {
451
+ module.debug('Fixing bottom attached element to bottom of browser.');
452
+ module.fixBottom();
453
+ }
454
+ }
455
+ else {
456
+ if(module.is.bound() && (scroll.top < context.bottom - element.height) ) {
457
+ module.debug('Fixing bottom attached element to top of browser.');
458
+ module.fixTop();
459
+ }
460
+ }
461
+ }
462
+ }
463
+ },
464
+
465
+ bindTop: function() {
466
+ module.debug('Binding element to top of parent container');
467
+ module.remove.offset();
468
+ $module
469
+ .css('left' , '')
470
+ .css('top' , '')
471
+ .css('margin-bottom' , '')
472
+ .removeClass(className.fixed)
473
+ .removeClass(className.bottom)
474
+ .addClass(className.bound)
475
+ .addClass(className.top)
476
+ ;
477
+ settings.onTop.call(element);
478
+ settings.onUnstick.call(element);
479
+ },
480
+ bindBottom: function() {
481
+ module.debug('Binding element to bottom of parent container');
482
+ module.remove.offset();
483
+ $module
484
+ .css('left' , '')
485
+ .css('top' , '')
486
+ .css('margin-bottom' , module.cache.context.bottomPadding)
487
+ .removeClass(className.fixed)
488
+ .removeClass(className.top)
489
+ .addClass(className.bound)
490
+ .addClass(className.bottom)
491
+ ;
492
+ settings.onBottom.call(element);
493
+ settings.onUnstick.call(element);
494
+ },
495
+
496
+ setInitialPosition: function() {
497
+ module.unfix();
498
+ module.unbind();
499
+ },
500
+
501
+
502
+ fixTop: function() {
503
+ module.debug('Fixing element to top of page');
504
+ module.set.offset();
505
+ $module
506
+ .css('left', module.cache.element.left)
507
+ .css('bottom' , '')
508
+ .removeClass(className.bound)
509
+ .removeClass(className.bottom)
510
+ .addClass(className.fixed)
511
+ .addClass(className.top)
512
+ ;
513
+ settings.onStick.call(element);
514
+ },
515
+
516
+ fixBottom: function() {
517
+ module.debug('Sticking element to bottom of page');
518
+ module.set.offset();
519
+ $module
520
+ .css('left', module.cache.element.left)
521
+ .css('bottom' , '')
522
+ .removeClass(className.bound)
523
+ .removeClass(className.top)
524
+ .addClass(className.fixed)
525
+ .addClass(className.bottom)
526
+ ;
527
+ settings.onStick.call(element);
528
+ },
529
+
530
+ unbind: function() {
531
+ module.debug('Removing absolute position on element');
532
+ module.remove.offset();
533
+ $module
534
+ .removeClass(className.bound)
535
+ .removeClass(className.top)
536
+ .removeClass(className.bottom)
537
+ ;
538
+ },
539
+
540
+ unfix: function() {
541
+ module.debug('Removing fixed position on element');
542
+ module.remove.offset();
543
+ $module
544
+ .removeClass(className.fixed)
545
+ .removeClass(className.top)
546
+ .removeClass(className.bottom)
547
+ ;
548
+ settings.onUnstick.call(element);
549
+ },
550
+
551
+ reset: function() {
552
+ module.debug('Reseting elements position');
553
+ module.unbind();
554
+ module.unfix();
555
+ module.resetCSS();
556
+ },
557
+
558
+ resetCSS: function() {
559
+ $module
560
+ .css({
561
+ top : '',
562
+ bottom : '',
563
+ width : '',
564
+ height : ''
565
+ })
566
+ ;
567
+ $container
568
+ .css({
569
+ height: ''
570
+ })
571
+ ;
572
+ },
573
+
574
+ setting: function(name, value) {
575
+ if( $.isPlainObject(name) ) {
576
+ $.extend(true, settings, name);
577
+ }
578
+ else if(value !== undefined) {
579
+ settings[name] = value;
580
+ }
581
+ else {
582
+ return settings[name];
583
+ }
584
+ },
585
+ internal: function(name, value) {
586
+ if( $.isPlainObject(name) ) {
587
+ $.extend(true, module, name);
588
+ }
589
+ else if(value !== undefined) {
590
+ module[name] = value;
591
+ }
592
+ else {
593
+ return module[name];
594
+ }
595
+ },
596
+ debug: function() {
597
+ if(settings.debug) {
598
+ if(settings.performance) {
599
+ module.performance.log(arguments);
600
+ }
601
+ else {
602
+ module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
603
+ module.debug.apply(console, arguments);
604
+ }
605
+ }
606
+ },
607
+ verbose: function() {
608
+ if(settings.verbose && settings.debug) {
609
+ if(settings.performance) {
610
+ module.performance.log(arguments);
611
+ }
612
+ else {
613
+ module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
614
+ module.verbose.apply(console, arguments);
615
+ }
616
+ }
617
+ },
618
+ error: function() {
619
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
620
+ module.error.apply(console, arguments);
621
+ },
622
+ performance: {
623
+ log: function(message) {
624
+ var
625
+ currentTime,
626
+ executionTime,
627
+ previousTime
628
+ ;
629
+ if(settings.performance) {
630
+ currentTime = new Date().getTime();
631
+ previousTime = time || currentTime;
632
+ executionTime = currentTime - previousTime;
633
+ time = currentTime;
634
+ performance.push({
635
+ 'Name' : message[0],
636
+ 'Arguments' : [].slice.call(message, 1) || '',
637
+ 'Element' : element,
638
+ 'Execution Time' : executionTime
639
+ });
640
+ }
641
+ clearTimeout(module.performance.timer);
642
+ module.performance.timer = setTimeout(module.performance.display, 0);
643
+ },
644
+ display: function() {
645
+ var
646
+ title = settings.name + ':',
647
+ totalTime = 0
648
+ ;
649
+ time = false;
650
+ clearTimeout(module.performance.timer);
651
+ $.each(performance, function(index, data) {
652
+ totalTime += data['Execution Time'];
653
+ });
654
+ title += ' ' + totalTime + 'ms';
655
+ if(moduleSelector) {
656
+ title += ' \'' + moduleSelector + '\'';
657
+ }
658
+ if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
659
+ console.groupCollapsed(title);
660
+ if(console.table) {
661
+ console.table(performance);
662
+ }
663
+ else {
664
+ $.each(performance, function(index, data) {
665
+ console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
666
+ });
667
+ }
668
+ console.groupEnd();
669
+ }
670
+ performance = [];
671
+ }
672
+ },
673
+ invoke: function(query, passedArguments, context) {
674
+ var
675
+ object = instance,
676
+ maxDepth,
677
+ found,
678
+ response
679
+ ;
680
+ passedArguments = passedArguments || queryArguments;
681
+ context = element || context;
682
+ if(typeof query == 'string' && object !== undefined) {
683
+ query = query.split(/[\. ]/);
684
+ maxDepth = query.length - 1;
685
+ $.each(query, function(depth, value) {
686
+ var camelCaseValue = (depth != maxDepth)
687
+ ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
688
+ : query
689
+ ;
690
+ if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
691
+ object = object[camelCaseValue];
692
+ }
693
+ else if( object[camelCaseValue] !== undefined ) {
694
+ found = object[camelCaseValue];
695
+ return false;
696
+ }
697
+ else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
698
+ object = object[value];
699
+ }
700
+ else if( object[value] !== undefined ) {
701
+ found = object[value];
702
+ return false;
703
+ }
704
+ else {
705
+ return false;
706
+ }
707
+ });
708
+ }
709
+ if ( $.isFunction( found ) ) {
710
+ response = found.apply(context, passedArguments);
711
+ }
712
+ else if(found !== undefined) {
713
+ response = found;
714
+ }
715
+ if($.isArray(returnedValue)) {
716
+ returnedValue.push(response);
717
+ }
718
+ else if(returnedValue !== undefined) {
719
+ returnedValue = [returnedValue, response];
720
+ }
721
+ else if(response !== undefined) {
722
+ returnedValue = response;
723
+ }
724
+ return found;
725
+ }
726
+ };
727
+
728
+ if(methodInvoked) {
729
+ if(instance === undefined) {
730
+ module.initialize();
731
+ }
732
+ module.invoke(query);
733
+ }
734
+ else {
735
+ if(instance !== undefined) {
736
+ instance.invoke('destroy');
737
+ }
738
+ module.initialize();
739
+ }
740
+ })
741
+ ;
742
+
743
+ return (returnedValue !== undefined)
744
+ ? returnedValue
745
+ : this
746
+ ;
747
+ };
748
+
749
+ $.fn.sticky.settings = {
750
+
751
+ name : 'Sticky',
752
+ namespace : 'sticky',
753
+
754
+ debug : false,
755
+ verbose : false,
756
+ performance : false,
757
+
758
+ pushing : false,
759
+ context : false,
760
+ scrollContext : window,
761
+
762
+ offset : 0,
763
+ bottomOffset : 0,
764
+
765
+ observeChanges : true,
766
+
767
+ onReposition : function(){},
768
+ onScroll : function(){},
769
+ onStick : function(){},
770
+ onUnstick : function(){},
771
+ onTop : function(){},
772
+ onBottom : function(){},
773
+
774
+ error : {
775
+ container : 'Sticky element must be inside a relative container',
776
+ visible : 'Element is hidden, you must call refresh after element becomes visible',
777
+ method : 'The method you called is not defined.',
778
+ invalidContext : 'Context specified does not exist',
779
+ elementSize : 'Sticky element is larger than its container, cannot create sticky.'
780
+ },
781
+
782
+ className : {
783
+ bound : 'bound',
784
+ fixed : 'fixed',
785
+ supported : 'native',
786
+ top : 'top',
787
+ bottom : 'bottom'
788
+ }
789
+
790
+ };
791
+
792
+ })( jQuery, window , document );