Guest User

Untitled

a guest
Jul 19th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. 1.Разметка в html
  2.  
  3. <nav>
  4.  
  5. <button class="header__menu-btn burger-menu burger-menu-x">
  6. <span>toggle menu</span>
  7. </button>
  8.  
  9. <ul class="header__menu d-flex text-uppercase">
  10. <li>
  11. <a href="#">Home</a>
  12. </li>
  13. <li>
  14. <a href="#">About</a>
  15. </li>
  16. <li>
  17. <a href="#">Services</a>
  18. </li>
  19. <li>
  20. <a href="#">Portfolio</a>
  21. </li>
  22. <li>
  23. <a href="#">Testimonials</a>
  24. </li>
  25. <li>
  26. <a href="#">Contact</a>
  27. </li>
  28. </ul>
  29.  
  30. </nav>
  31.  
  32. 2. Стили css
  33.  
  34. /*Бургер-меню*/
  35. .header__menu-btn{
  36. display:none;
  37. cursor:pointer;
  38. }
  39. /*Дизайн кнопки бургера*/
  40. .burger-menu {
  41. display: none;
  42. position: relative;
  43. overflow: hidden;
  44. margin: 0;
  45. padding: 0;
  46. width: 45px;
  47. height: 45px;
  48. font-size: 0;
  49. text-indent: -9999px;
  50. appearance: none;
  51. box-shadow: none;
  52. border-radius: none;
  53. border: none;
  54. cursor: pointer;
  55. transition: background 0.3s;
  56. }
  57.  
  58. .burger-menu:focus {
  59. outline: none;
  60. }
  61.  
  62. .burger-menu span {
  63. display: block;
  64. position: absolute;
  65. top: 21px;
  66. left: 10px;
  67. right: 10px;
  68. height: 3px;
  69. width:26px;
  70. background: white;
  71. }
  72.  
  73. .burger-menu span::before,
  74. .burger-menu span::after {
  75. position: absolute;
  76. display: block;
  77. left: 0;
  78. width: 26px;
  79. height: 3px;
  80. background-color: white;
  81. content: "";
  82. }
  83.  
  84. .burger-menu span::before {
  85. top: 9px;
  86. }
  87.  
  88. .burger-menu span::after {
  89. bottom: 9px;
  90. }
  91.  
  92. .burger-menu-x {
  93. background-color: transparent;
  94. }
  95.  
  96. .burger-menu-x span {
  97. transition: background 0s 0.3s;
  98. }
  99.  
  100. .burger-menu-x span::before,
  101. .burger-menu-x span::after {
  102. transition-duration: 0.3s, 0.3s;
  103. transition-delay: 0.3s, 0s;
  104. }
  105.  
  106. .burger-menu-x span::before {
  107. transition-property: top, transform;
  108. }
  109.  
  110. .burger-menu-x span::after {
  111. transition-property: bottom, transform;
  112. }
  113.  
  114. /* состояние active при открытом меню */
  115. .burger-menu-x.is-active {
  116. background-color: #cb0032;
  117. }
  118.  
  119. .burger-menu-x.is-active span {
  120. background: none;
  121. }
  122.  
  123. .burger-menu-x.is-active span::before {
  124. top: 1px;
  125. transform: rotate(45deg);
  126. }
  127.  
  128. .burger-menu-x.is-active span::after {
  129. bottom: -1px;
  130. transform: rotate(-45deg);
  131. }
  132.  
  133. .burger-menu-x.is-active span::before,
  134. .burger-menu-x.is-active span::after {
  135. transition-delay: 0s, 0.3s;
  136. }
  137.  
  138. 3. Скрипты js
  139.  
  140. //Бургер-меню
  141. $(document).ready(function() {
  142. var menuBtn = $('.header__menu-btn');
  143. var menu = $('.header__menu');
  144.  
  145. menuBtn.on('click', function(event) {
  146. event.preventDefault();
  147. menu.toggleClass('header__menu__active');
  148. });
  149.  
  150. });
  151. //Бургер-меню анимация
  152. (function() {
  153.  
  154. "use strict";
  155.  
  156. var toggles = document.querySelectorAll(".burger-menu");
  157.  
  158. for (var i = toggles.length - 1; i >= 0; i--) {
  159. var toggle = toggles[i];
  160. toggleHandler(toggle);
  161. };
  162.  
  163. function toggleHandler(toggle) {
  164. toggle.addEventListener( "click", function(e) {
  165. e.preventDefault();
  166. (this.classList.contains("is-active") === true) ? this.classList.remove("is-active") : this.classList.add("is-active");
  167. });
  168. }
  169.  
  170. })();
  171. //---------
  172.  
  173. 4. Медиа-запрос
  174.  
  175. @media (max-width: 767.98px) {
  176.  
  177. /*бургер-меню*/
  178. .header__menu li{
  179. display:none;
  180. }
  181. .header__menu-btn{
  182. display:block;
  183. }
  184. .header__menu{
  185. flex-direction:column;
  186. }
  187. .header__menu__active li{
  188. display:block;
  189. padding:13px;
  190. }
  191. /*---------*/
  192. /*красота бургер-меню*/
  193. .header__menu li a:hover{
  194. color:#fcac45;
  195. }
  196. .header__menu li a:after{
  197. display:none;
  198. }
  199. /*-------------*/
  200.  
  201. }
Add Comment
Please, Sign In to add comment