Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.86 KB | None | 0 0
  1. var link = document.querySelector('.login');
  2. var popup = document.querySelector('.modal-content');
  3. var close = document.querySelector('.modal-content-close');
  4. var login = popup.querySelector('[name=login]');
  5. var form = popup.querySelector('form');
  6. var password = popup.querySelector('[name=password]');
  7. var storage = localStorage.getItem('login');
  8. /*
  9. Ищем кнопку входа и пихаем ее в переменную link.
  10. var link - название переменной (link), в которой будет находиться найденный элемент.
  11. document - то где ищем (по всему DOM).
  12. querySelector - метод для поиска элемента (можно искать теги, классы, id и тд).
  13. ('.login') - передаем методу css селектор, по которому будем искать.
  14. [name=login] - поиск по атрибуту.
  15.  
  16. querySelectorAll
  17. document.querySelectorAll('nav li'); - вернет масcив со всеми li из nav.
  18. Можно найти, например, все элементы с классом login.
  19. */
  20. link.addEventListener('click', function(event) {
  21. event.preventDefault();
  22. //Убираем событие по умолчанию у элемпента, в нашем случае это переход по ссылке (href="#").
  23. //Только если мы вызываем этот медод в самом НАЧАЛЕ нашей функции.
  24. console.log('окно появилось');
  25. popup.classList.add('modal-content-show');
  26. login.focus(); //фокус на поле логин.
  27. /*
  28. Первое (popup) - это элемент, которому добавляем новый класс.
  29. classList - свойство, содержащее в себе методы для работы с классами.
  30. add - метод добавления класса.
  31. ('modal-content-show') - название класса, которое нужно добавить элементу, при работе с классами здесь, мы НЕ используем точку! Мы указываем название класса.
  32. Другие методы:
  33. element.classList.add(); - добавляет класс;
  34. element.classList.remove(); - удаляет класс;
  35. element.classList.toggle(); - переключает класс;
  36. element.classList.contains(); - сообщает, есть ли класс у элемента;
  37. */
  38. if (storage) {
  39. login.value = storage; // если в сторедж есть значение, то значение логин = сторедж, то есть, подставлшяем то, что мы сохранили в сторедж.
  40. password.focus();
  41. } else {
  42. login.focus(); // елси if не верно, то фокус на поле логин.
  43. }
  44. });
  45. /*
  46. EVENT - обратить внимание и запомнить!
  47. link - элемент у которого мы будем ловить события в нашем случае это переменная link.
  48. addEventListener - метод для отлова события.
  49. click - определяем какие события мы ловим (клики).
  50. function(){} - функция, которая будет выполняться каждый раз, когда мы ловим событие "клик".
  51. console.log('Сообщение в консоль браузера'); - сообщение, которое выводиться в консоль после клика.
  52. */
  53.  
  54. close.addEventListener('click', function(event) {
  55. event.preventDefault();
  56. //event.preventDefault(); - для подстраховки, если на крестик решат повесить ссылку.
  57. console.log('окно исчезло');
  58. popup.classList.remove('modal-content-show');
  59. //Убираем класс у блока, тем самым делая его невидимым.
  60. });
  61.  
  62. form.addEventListener('submit', function(event) {
  63. //event.preventDefault(); //Перехват событий ставится в самом начале функции. (Мы перехватили событие у формы.)
  64. // console.log('отправляем форму');
  65. // console.log(login.value);
  66. // console.log(password.value);
  67. if (!(login.value && password.value)) {
  68. event.preventDefault(); //если не введены логин или пароль - мы неотправляем форму.
  69. console.log('Нужно ввести логин и пароль.');
  70. popup.classList.add('modal-error');
  71. } else {
  72. localStorage.setItem('login', login.value) //если пароль и логин введены, мы оставляем значение логина в хранилище браузера
  73. }
  74. // значение else запускается тогда, когда if не выполняется
  75. });
  76.  
  77. /*
  78. if - оператор условия: если условие в скобках верное, то запускается код в фигурных скобочках.
  79. (login.value && password.value) - значение value у login и password (условие будет верно, только если в пасворд и логин что-то введено).
  80. && (два амперсанта) - это "и".
  81. ! - переворачивает условие ноборот, в нашем случае это ОТСУТСТВИЕ значиния у логин и пароля, то есть условие будет верным, если у пассворд и логин ничего не введено.
  82. */
  83. /*
  84. localStorage.setItem('name', 'keks'); - записываем в локалье хранилище данные.
  85. localStarage - глобольный объект работы с хранилищем.
  86. setItem('name', 'keks') - метод для создания новой записи в хранилище.
  87. 'name' - ключ записи.
  88. 'keks' - значение записи.
  89.  
  90. localStorage:
  91.  
  92. localStorage.getItem() - получаем значение ключа из хранилища.
  93. localStorage.setItem() - создаем новую запись в хранилище.
  94. localStorage.removeItem() - удаляем запись из хранилища.
  95. localStorage.clear() - полность очищаем хранилище.
  96. */
  97.  
  98. window.addEventListener('keydown', function(event) { //keydown - нажатие клавиши
  99. if (event.keyCode == 27) { // == - сравнение, сравниваем что-то с чем-то, равно ли 27 - 27, 27 - номер клавиши эскейп.
  100. if (popup.classList.contains('modal-content-show')) { //мы проверяем, открыто ли наше модальное окно, contains - метод, который возвращает, есить ли класс у элемента или нет.
  101. popup.classList.remove('modal-content-show'); //если он есть, тогда мы его удаляем
  102. }
  103. }
  104. });
  105.  
  106. //на 1 : 40
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement