Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>WebStudio</title> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/modern-normalize/2.0.0/modern-normalize.min.css" | |
| crossorigin="anonymous" referrerpolicy="no-referrer"> | |
| <link rel="stylesheet" href="./css/styles.css"> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> |
| import { Directive, Attribute, HostListener } from '@angular/core'; | |
| import { NgModel } from '@angular/forms'; | |
| @Directive({ | |
| selector: '[mask]', | |
| host: { | |
| '(keyup)' : 'onInputChange()' | |
| } | |
| }) | |
| export class MaskDirective{ |
| import { Directive, HostListener } from '@angular/core'; | |
| @Directive({ | |
| selector: '[appNoDblClickMat]' | |
| }) | |
| export class NoDblClickDirectiveMat { | |
| constructor() { } | |
| @HostListener('click', ['$event']) |
| /* | |
| Based on: | |
| 1. http://stephen.io/mediaqueries | |
| 2. https://css-tricks.com/snippets/css/media-queries-for-standard-devices/ | |
| */ | |
| /* iPhone 6 in portrait & landscape */ | |
| @media only screen | |
| and (min-device-width : 375px) | |
| and (max-device-width : 667px) { |
Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| (function () { | |
| // --------------------------Task 1--------------------- | |
| // ----------------------------------------------------- | |
| // created an empty array | |
| console.log("----------------Task 1----------------"); | |
| console.log("Created an empty array"); | |
| console.log("--------------------------------------"); | |
| var numberArr = []; | |
| // ----------------------------------------------------- |
| Michael Barnes | |
| Single User License | |
| EA7E-821385 | |
| 8A353C41 872A0D5C DF9B2950 AFF6F667 | |
| C458EA6D 8EA3C286 98D1D650 131A97AB | |
| AA919AEC EF20E143 B361B1E7 4C8B7F04 | |
| B085E65E 2F5F5360 8489D422 FB8FC1AA | |
| 93F6323C FD7F7544 3F39C318 D95E6480 | |
| FCCC7561 8A4A1741 68FA4223 ADCEDE07 | |
| 200C25BE DBBC4855 C4CFB774 C5EC138C |
| var swiper_main = new Swiper('.swiper-container-design-mobile', { | |
| paginationClickable: true, | |
| loop: true, | |
| slidesPerView: 3, | |
| spaceBetween: 30, | |
| centeredSlides: true, | |
| autoplay: 3500, | |
| speed: 1000, | |
| freeMode: true, | |
| watchSlidesProgress: true, |
| swiper = new Swiper('.swiper-pages', { | |
| grabCursor: true, | |
| slidesPerView : '1', | |
| progress:true, | |
| loop:true, | |
| autoResize: false, | |
| resizeReInit: true, | |
| onProgressChange: function(swiper){ | |
| for (var i = 0; i < swiper.slides.length; i++){ |