Guest User

Untitled

a guest
Jul 15th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. /**
  2. * @type {string}
  3. */
  4.  
  5. var leftPoint = '60px',
  6. rightPoint = '88.5%',
  7. trafficLeftPoint = '45%',
  8. trafficRightPoint = '52%',
  9. carMorning = 'img/sedan-512.png',
  10. carNight = 'img/sedan-512-night.png',
  11. carImg = document.querySelector('.carBlock img'),
  12. skyBlock = document.querySelector('.skyLine'),
  13. toggleBtn = document.querySelector('.toggleBtn'),
  14. carBlock = document.querySelector('.carBlock');
  15.  
  16. toggleBtn.addEventListener('click', function() {
  17. slideSquare(this);
  18. });
  19.  
  20. // -- Functions --
  21.  
  22. /**
  23. * @param elem
  24. * @returns {boolean}
  25. */
  26.  
  27. function slideSquare(elem) {
  28.  
  29. if (elem.classList.contains('atLeft')) {
  30.  
  31. changeToMorning();
  32. moveToTrafficFromLeft(elem);
  33.  
  34. } else if (elem.classList.contains('atTraffic') && elem.classList.contains('fromLeft')) {
  35.  
  36. moveToRightFromTraffic(elem);
  37.  
  38. } else if (elem.classList.contains('atRight')) {
  39.  
  40. changeToNight();
  41. moveToTrafficFromRight(elem);
  42.  
  43. } else if (elem.classList.contains('atTraffic') && elem.classList.contains('fromRight')) {
  44.  
  45. moveToLeftFromTraffic(elem);
  46. }
  47.  
  48. return false;
  49. }
  50.  
  51. /**
  52. * @param elem
  53. */
  54.  
  55. function moveToTrafficFromLeft(elem) {
  56.  
  57. var clAddArray = ['atTraffic', 'fromLeft'];
  58.  
  59. elem.classList.remove('atLeft');
  60. addClassesToElements(clAddArray, elem);
  61. carBlock.style.left = trafficLeftPoint;
  62.  
  63. }
  64.  
  65. /**
  66. * @param elem
  67. */
  68.  
  69. function moveToRightFromTraffic(elem) {
  70.  
  71. var clAddArray = ['atRight'];
  72.  
  73. elem.classList.remove('atTraffic', 'fromLeft');
  74.  
  75. addClassesToElements(clAddArray, elem);
  76.  
  77. carBlock.style.left = rightPoint;
  78.  
  79. setTimeout(function() {
  80. carBlock.style.transform = 'rotateY(-180deg)';
  81. }, 3000);
  82.  
  83. }
  84.  
  85. /**
  86. * @param elem
  87. */
  88.  
  89. function moveToTrafficFromRight(elem) {
  90.  
  91. var clAddArray = ['atTraffic', 'fromRight'];
  92.  
  93. elem.classList.remove('atRight');
  94.  
  95. addClassesToElements(clAddArray, elem);
  96.  
  97. carBlock.style.left = trafficRightPoint;
  98.  
  99. }
  100.  
  101. /**
  102. * @param elem
  103. */
  104.  
  105. function moveToLeftFromTraffic(elem) {
  106.  
  107. var clAddArray = ['atLeft'];
  108.  
  109. elem.classList.remove('atTraffic', 'fromRight');
  110.  
  111. addClassesToElements(clAddArray, elem);
  112.  
  113. carBlock.style.left = leftPoint;
  114.  
  115. setTimeout(function() {
  116. carBlock.style.transform = 'rotateY(0)';
  117.  
  118. changeToMorning();
  119. }, 3000);
  120.  
  121. }
  122.  
  123. /**
  124. * @param arrayClasses
  125. * @param element
  126. */
  127.  
  128. function addClassesToElements(arrayClasses, element) {
  129.  
  130. arrayClasses.forEach(function (classItem) {
  131. element.classList.add(classItem);
  132. });
  133.  
  134. }
  135.  
  136. /**
  137. * Changing car and sky to morning mode
  138. */
  139.  
  140. function changeToMorning() {
  141. carImg.setAttribute("src", carMorning);
  142. skyBlock.style.backgroundColor = '#82D7E8';
  143. }
  144.  
  145. /**
  146. * Changing car and sky to night mode
  147. */
  148.  
  149. function changeToNight() {
  150. carImg.setAttribute("src", carNight);
  151. skyBlock.style.backgroundColor = '#000888';
  152. }
Add Comment
Please, Sign In to add comment