Guest User

Untitled

a guest
Jan 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.54 KB | None | 0 0
  1. <!-- BEGIN - SlideShow -->
  2. <div class="ImageSlider">
  3. <div class="ImageSlider-scroller">
  4. <ul class="ImageSlider-items">
  5. <li class="ImageSlider-item" style="background-image: url(http://vitas.sk/OnlineTv/images/1.jpg);"></li>
  6. <li class="ImageSlider-item" style="background-image: url(http://vitas.sk/OnlineTv/images/2.jpg);"></li>
  7. <li class="ImageSlider-item" style="background-image: url(http://vitas.sk/OnlineTv/images/3.jpg);"></li>
  8. </ul>
  9. <nav class="ImageSlider-indicators">
  10. <a href="javascript: void 0;" class="ImageSlider-indicator js-ImageSlider-dot"></a>
  11. <a href="javascript: void 0;" class="ImageSlider-indicator js-ImageSlider-dot"></a>
  12. <a href="javascript: void 0;" class="ImageSlider-indicator js-ImageSlider-dot"></a>
  13. </nav>
  14. </div>
  15. </div>
  16. <!-- END - SlideShow -->
  17.  
  18. /* Image Slider */
  19. .ImageSlider {
  20. display: flex;
  21. align-items: stretch;
  22. height: 50%;
  23. }
  24.  
  25. .ImageSlider-button {
  26. width: 40px;
  27. border: none;
  28. background: transparent;
  29. color: #000000;
  30. font-size: 40px;
  31. text-align: center;
  32. outline: none;
  33. opacity: 0.5;
  34. transition: opacity 300ms ease-out;
  35. }
  36.  
  37. .ImageSlider-button:hover {
  38. opacity: 1;
  39. }
  40.  
  41. .ImageSlider-scroller {
  42. flex: 1;
  43. overflow: hidden;
  44. position: relative;
  45. }
  46.  
  47. .ImageSlider-items {
  48. margin: 0;
  49. padding: 0;
  50. list-style: none;
  51. white-space: nowrap;
  52. font-size: 0;
  53. line-height: 0;
  54. transition: transform 0.6s cubic-bezier(1, 0, 0, 1);
  55. }
  56.  
  57. .ImageSlider-item {
  58. display: inline-block;
  59. padding-bottom: 31.25%;
  60. width: 100%;
  61. height: 100%;
  62. background-size: cover;
  63. background-position: 50% 50%;
  64. }
  65.  
  66. .ImageSlider-indicators {
  67. list-style: none;
  68. padding: 0;
  69. position: absolute;
  70. bottom: 0;
  71. left: 0;
  72. right: 0;
  73. display: block;
  74. text-align: right;
  75. padding: 40px 140px;
  76. font-size: 0;
  77. }
  78.  
  79. .ImageSlider-indicator {
  80. display: inline-block;
  81. text-decoration: none;
  82. color: #FFFFFF;
  83. font-weight: bold;
  84. border: 2px solid #FFFFFF;
  85. width: 14px;
  86. height: 14px;
  87. border-radius: 16px;
  88. margin: 0 4px;
  89. background-color: rgba(255, 255, 255, 0);
  90. transition: background-color 0.4s ease-in-out;
  91. }
  92.  
  93. .ImageSlider-indicator:hover,
  94. .ImageSlider-indicator--is-active {
  95. background-color: #FFFFFF;
  96. }
  97.  
  98. /* global Modernizr */
  99.  
  100. if (!Object.assign) {
  101. Object.defineProperty(Object, 'assign', {
  102. enumerable: false,
  103. configurable: true,
  104. writable: true,
  105. value: function(target) {
  106. 'use strict';
  107. if (target === undefined || target === null) {
  108. throw new TypeError('Cannot convert first argument to object');
  109. }
  110.  
  111. var to = Object(target);
  112. for (var i = 1; i < arguments.length; i++) {
  113. var nextSource = arguments[i];
  114. if (nextSource === undefined || nextSource === null) {
  115. continue;
  116. }
  117. nextSource = Object(nextSource);
  118.  
  119. var keysArray = Object.keys(nextSource);
  120. for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
  121. var nextKey = keysArray[nextIndex];
  122. var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
  123. if (desc !== undefined && desc.enumerable) {
  124. to[nextKey] = nextSource[nextKey];
  125. }
  126. }
  127. }
  128. return to;
  129. }
  130. });
  131. }
  132.  
  133. (function(window, document, Modernizr) {
  134. "use strict";
  135.  
  136. var d = document;
  137. var transform = Modernizr.prefixed('transform');
  138.  
  139. function ImageSliderIndicators(imageSlider, options) {
  140. this.imageSlider = imageSlider;
  141. this.options = Object.assign({}, ImageSliderIndicators.DEFAULTS, options || {});
  142. this.el = d.querySelector('.' + this.options.indicatorsClass);
  143. this.indicators = [].slice.call(d.querySelectorAll('.' + this.options.indicatorClass));
  144.  
  145. this.imageSlider.el.addEventListener('positionChanged', this.onPositionChanged.bind(this));
  146. this.el.addEventListener('click', this.onIndicatorClick.bind(this), false);
  147. this.onPositionChanged();
  148. }
  149.  
  150. ImageSliderIndicators.DEFAULTS = {
  151. indicatorsClass: 'ImageSlider-indicators',
  152. indicatorClass: 'ImageSlider-indicator',
  153. indicatorActiveClass: 'ImageSlider-indicator--is-active'
  154. };
  155.  
  156. ImageSliderIndicators.prototype.onIndicatorClick = function onIndicatorClick(event) {
  157. var position = this.indicators.indexOf(event.target);
  158. if (position !== -1) {
  159. this.imageSlider.goto(position);
  160. }
  161. };
  162.  
  163. ImageSliderIndicators.prototype.onPositionChanged = function onPositionChanged() {
  164. var self = this;
  165. this.indicators.forEach(function(element, index) {
  166. var action = index === self.imageSlider.position ? 'add' : 'remove';
  167. element.classList[action](self.options.indicatorActiveClass);
  168. });
  169. };
  170.  
  171. function ImageSlider(options) {
  172. this.options = Object.assign({}, ImageSlider.DEFAULTS, options || {});
  173. this.position = 0;
  174. this.el = d.querySelector('.' + this.options.imageSliderClass);
  175. this.items = d.querySelector('.' + this.options.itemsClass);
  176. this.itemCount = d.querySelectorAll('.' + this.options.itemClass).length;
  177. this.scroller = d.querySelector('.' + this.options.scrollerClass);
  178. this.previousButton = d.querySelector('.' + this.options.previousButtonClass);
  179. this.nextButton = d.querySelector('.' + this.options.nextButtonClass);
  180. this.indicators = new ImageSliderIndicators(this, this.options.indicators);
  181.  
  182. window.addEventListener('resize', this.render.bind(this));
  183. this.nextButton && this.nextButton.addEventListener('click', this.next.bind(this));
  184. this.previousButton && this.previousButton.addEventListener('click', this.previous.bind(this));
  185. }
  186.  
  187. ImageSlider.DEFAULTS = {
  188. imageSliderClass: 'ImageSlider',
  189. itemsClass: 'ImageSlider-items',
  190. itemClass: 'ImageSlider-item',
  191. scrollerClass: 'ImageSlider-scroller',
  192. previousButtonClass: 'js-ImageSlider-button--previous',
  193. nextButtonClass: 'js-ImageSlider-button--next'
  194. };
  195.  
  196. ImageSlider.prototype.render = function render() {
  197. this.items.style[transform] = 'translate3d(' + (-this.position * this.items.offsetWidth) + 'px,0,0)';
  198. };
  199.  
  200. ImageSlider.prototype.goto = function goto(position) {
  201. var event = d.createEvent('Event');
  202. event.initEvent('positionChanged', true, true);
  203. this.position = position;
  204. this.el.dispatchEvent(event);
  205. this.render();
  206. };
  207.  
  208. ImageSlider.prototype.previous = function previous() {
  209. this.goto((this.position + (this.itemCount - 1)) % this.itemCount);
  210. };
  211.  
  212. ImageSlider.prototype.next = function next() {
  213. this.goto((this.position + 1) % this.itemCount);
  214. };
  215.  
  216. window.ImageSlider = ImageSlider;
  217.  
  218. }).call(this, window, window.document, Modernizr);
  219.  
  220. new ImageSlider();
Add Comment
Please, Sign In to add comment